JBOSS 點滴

          豐豐的博客

          #

          android在布局中圖片大小自適應

          一、適應某控制:
                XML:

                          <WebView
                              android:id="@+id/awaimage"
                              android:layout_width="90dp"
                              android:layout_height="80dp"
                              android:layout_marginLeft="2dp"
                      android:layout_marginRight="2dp"
                      android:scaleType="fitXY"

               JAVA:
          /*            WebSettings webSettings = holder.imageView.getSettings();    
                      webSettings.setUseWideViewPort(true); //設置加載進來的頁面自適應手機屏幕 
                      webSettings.setLoadWithOverviewMode(true); 
          */

                      
          //允許使用javascript  
                 
          //     webSettings.setJavaScriptEnabled(true); 

          二、自動適應屏幕大?。?br />         WebSettings webSettings = holder.imageView.getSettings();   
                   webSettings.setUseWideViewPort(true); //設置加載進來的頁面自適應手機屏幕
                   webSettings.setLoadWithOverviewMode(true); 
                   //允許使用javascript  
                   webSettings.setJavaScriptEnabled(true);

          posted @ 2015-05-13 14:39 半導體 閱讀(386) | 評論 (0)編輯 收藏

          Android圖片處理內存溢出學習

              

                  Android圖片處理內存溢出學習             

          原文:

          http://blog.csdn.net/huangbiao86/article/details/8072128

          最近遇到一個問題,在Android機器上,調用自帶的相機拍攝后獲得相處,并且對獲得的相片進行縮放,旋轉,截取等操作,看似很簡單,但是卻遇到了一個,讓人心疼的問題,我這里用五能手機進行測試,當然,功能測試是沒有問題,當發給客戶去測試的時候,卻出現了內存溢出,哎無言啊...

          原來他用的是三星的G3手機進行測試的,我們沒有這款手機,后來借別人的G3手機測試,果然也出現這個問題:

          1. java.lang.OutOfMemoryError  
          2. at android.graphics.BitmapFactory.nativeDecodeByteArray(Native Method)  
          3. at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:518)  
          4. at android.graphics.BitmapFactory.decodeByteArray(BitmapFactory.java:535)  
          5. at com.yippeearts.flashcards.CameraPage$1.onPictureTaken(CameraPage.java:73)  
          6. at android.hardware.Camera$EventHandler.handleMessage(Camera.java:734)  
          7. at android.os.Handler.dispatchMessage(Handler.java:99)  
          8. at android.os.Looper.loop(Looper.java:137)  
          9. at android.app.ActivityThread.main(ActivityThread.java:4514)  
          10. at java.lang.reflect.Method.invokeNative(Native Method)  
          11. at java.lang.reflect.Method.invoke(Method.java:511)  
          12. at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)  
          13. at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)  
          14. at dalvik.system.NativeStart.main(Native Method)  

          這個在不同的手機上出現這種錯誤還是有點尷尬的。一直以為是對圖片的邏輯處理出了什么問題,經過總結發現,估計是因為G3手機拍攝相片分辨率過高,使圖片過大,造成過程中內存溢出,通過網上搜索若干解決加載大圖片時內存溢出的問題:

           

          盡量不要使用setImageBitmap或setImageResource或BitmapFactory.decodeResource來設置一張大圖,因為這些函數在完成decode后,最終都是通過java層的createBitmap來完成的,需要消耗更多內存。

          因此,改用先通過BitmapFactory.decodeStream方法,創建出一個bitmap,再將其設為ImageView的 source,decodeStream最大的秘密在于其直接調用JNI>>nativeDecodeAsset()來完成decode,無需再使用java層的createBitmap,從而節省了java層的空間。
          如果在讀取時加上圖片的Config參數,可以跟有效減少加載的內存,從而跟有效阻止拋out of Memory異常
          另外,decodeStream直接拿的圖片來讀取字節碼了, 不會根據機器的各種分辨率來自動適應, 使用了decodeStream之后,需要在hdpi和mdpi,ldpi中配置相應的圖片資源, 否則在不同分辨率機器上都是同樣大?。ㄏ袼攸c數量),顯示出來的大小就不對了。


          內存溢出解決辦法:

          1、模擬器RAM比較小,只有8M內存,當我放入的大量的圖片(每個100多K左右),就出現上面的原因。由于每張圖片先前是壓縮的情況,放入到Bitmap的時候,大小會變大,導致超出RAM內存,具體解決辦法如下:

          1. // 解決加載圖片 內存溢出的問題  
          2. // Options 只保存圖片尺寸大小,不保存圖片到內存  
          3. BitmapFactory.Options opts = new BitmapFactory.Options();  
          4. // 縮放的比例,縮放是很難按準備的比例進行縮放的,其值表明縮放的倍數,SDK中建議其值是2的指數值,值越大會導致圖片不清晰  
          5. opts.inSampleSize = 4;  
          6. Bitmap bmp = null;  
          7. bmp = BitmapFactory.decodeResource(getResources(), mImageIds[position],  
          8.                 opts);  
          9. // 回收  
          10. bmp.recycle();  

          2、優化Dalvik虛擬機的堆內存分配

           

          對于Android平臺來說,其托管層使用的Dalvik JavaVM從目前的表現來看還有很多地方可以優化處理,比如我們在開發一些大型游戲或耗資源的應用中可能考慮手動干涉GC處理,使用dalvik.system.VMRuntime類提供的setTargetHeapUtilization方法可以增強程序堆內存的處理效率。當然具體原理我們可以參考開源工程,這里我們僅說下使用方法:   private final static floatTARGET_HEAP_UTILIZATION = 0.75f; 在程序onCreate時就可以調用VMRuntime.getRuntime().setTargetHeapUtilization(TARGET_HEAP_UTILIZATION);即可。

          Android堆內存也可自己定義大小

          對于一些Android項目,影響性能瓶頸的主要是Android自己內存管理機制問題,目前手機廠商對RAM都比較吝嗇,對于軟件的流暢性來說RAM對性能的影響十分敏感,除了 優化Dalvik虛擬機的堆內存分配外,我們還可以強制定義自己軟件的對內存大小,我們使用Dalvik提供的dalvik.system.VMRuntime類來設置最小堆內存為例:

          1. private final static int CWJ_HEAP_SIZE = 610241024 ;  
          2.   
          3. VMRuntime.getRuntime().setMinimumHeapSize(CWJ_HEAP_SIZE); //設置最小heap內存為6MB大小。當然對于內存吃緊來說還可以通過手動干涉GC去處理  

          bitmap 設置圖片尺寸,避免 內存溢出 OutOfMemoryError的優化方法
          ★android 中用bitmap 時很容易內存溢出,報如下錯誤:Java.lang.OutOfMemoryError : bitmap size exceeds VM budget

           

          主要是加上這段:

          BitmapFactory.Options options = new BitmapFactory.Options();
          options.inSampleSize = 2;

           eg1:(通過Uri取圖片)

          1. private ImageView preview;  
          2. BitmapFactory.Options options = new BitmapFactory.Options();  
          3. options.inSampleSize = 2;//圖片大小,設置越大,圖片越不清晰,占用空間越小  
          4. Bitmap bitmap = BitmapFactory.decodeStream(cr.openInputStream(uri), null, options);  
          5. preview.setImageBitmap(bitmap);  

          eg2:(通過路徑去圖片)

           

          1. private ImageView preview;  
          2. private String fileName= "/sdcard/DCIM/Camera/2010-05-14 16.01.44.jpg";  
          3. BitmapFactory.Options options = new BitmapFactory.Options();  
          4. options.inSampleSize = 2;//圖片寬高都為原來的二分之一,即圖片為原來的四分之一  
          5. Bitmap b = BitmapFactory.decodeFile(fileName, options);  
          6. preview.setImageBitmap(b);  
          7. filePath.setText(fileName);  

          在圖片處理的時候,確保圖片引用及時回收。

          posted @ 2015-05-12 18:54 半導體 閱讀(233) | 評論 (0)編輯 收藏

          安卓 html顯示時,圖片無法加載

          <!--  hardwareAccelerated解決4.0啟動了硬件加速 ,HTML網絡圖片無法正常顯示的問題-->
          android:hardwareAccelerated="false"

          posted @ 2015-05-05 20:57 半導體 閱讀(274) | 評論 (1)編輯 收藏

          安卓顯示HTML

          方法1、使用 CDATA(推薦)
          <string name="demoStr"><Data><![CDATA[ <b>ABC</b> ]]> </Data></string>
          方法2、轉義HTML標簽
          <string name="myHeadStr">&lt;b>&lt;u>bold, underline &lt;/u>&lt;/b></string>
          在程序里引用:
          Html.fromHtml(getResources().getString(R.string.myHeadStr));
          效果圖
          android string html標簽用法
          string.xml代碼
          Code   ViewCopyPrint
          1. <string name="test"><Data><![CDATA[ <b><font color="#ff0000">ABC</font></b> ]]></Data></string>  

          java代碼:

          Code   ViewCopyPrint
          1. import android.app.Activity;   
          2. import android.app.AlertDialog;   
          3. import android.content.DialogInterface;   
          4. import android.os.Bundle;   
          5. import android.text.Html;   
          6.   
          7. public class testActivity extends Activity {   
          8.     public void onCreate(Bundle savedInstanceState) {   
          9.         super.onCreate(savedInstanceState);   
          10.         AlertDialog.Builder dialog = new AlertDialog.Builder(testActivity.this);   
          11.         dialog.setTitle("測試HTML標簽").setMessage(Html.fromHtml(getString(R.string.test))).setPositiveButton(getString(R.string.btn_confirm), new DialogInterface.OnClickListener() {   
          12.             public void onClick(DialogInterface dialog, int which) {   
          13.   
          14.             }   
          15.         }).create().show();   
          16.     }   
          17. }   

          posted @ 2015-05-05 13:39 半導體 閱讀(124) | 評論 (0)編輯 收藏

          eclipse luna+tomcat7.0+JDK7.0+maven環境配置

          eclipse luna+tomcat7.0+JDK7.0+maven環境配置

          一、下載相關包:

          eclipse luna下載地址 :  http://www.eclipse.org/downloads/

          JDK7.0下載地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

          Tomcat7.0下載地址:

          http://tomcat.apache.org/download-70.cgi

          MAVEN下載地址:http://maven.apache.org/

          二、環境變量配置(根據軟件安裝位置配置如下)

          JAVA_HOME: D:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Java\jdk1.6.0_11\;

          PATH: D:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Java\jdk1.6.0_11\bin;

          M2_HOME:  D:\Program Files (x86)\apache-maven-3.2.5-bin\apache-maven-3.2.5

          PATH D:\Program Files (x86)\apache-maven-3.2.5-bin\apache-maven-3.2.5\bin

          三、    運行eclipse luna

          綠色環保,直接運行eclipse.exe就行了


          四、導入maven項目前配置

              
          A,tomcat
          配置





          B,JDK配置


          C,MAVEN
          安裝:


          D,
          導入maven項目:


          E,
          導入后如果項目報錯,請執行:

          在項目上右擊,選擇菜單maven->update project MAVEN會自動搜索項目中需要的jar包)

             F、運行服務:

          選擇run on server->tomcat 7

          iE上輸入:http://localhost:8080/項目名   測試一下吧。

          posted @ 2015-02-12 10:04 半導體 閱讀(2906) | 評論 (1)編輯 收藏

          MAVEN環境變量配置

          一、JDK配置:JAVA_HOME  PATH 
          二、新建M2_HOME環境:  如:D:\Program Files (x86)\apache-maven-3.2.5-bin\apache-maven-3.2.5
          三、PATH:如:D:\Program Files (x86)\apache-maven-3.2.5-bin\apache-maven-3.2.5\bin
               測試Maven環境是否搭建成功,在CMD下輸入命令:
                mvn -v
               編譯maven項目方法:cmd下指向項目目錄下,運行命行:mvn compile
               mvn te

          posted @ 2015-02-11 17:41 半導體 閱讀(209) | 評論 (0)編輯 收藏

          sqlserver創建用戶,指定數據庫,指定表的權限

          http://www.cnblogs.com/gaizai/archive/2011/07/14/2106617.html
          記住要選擇dbo_owner 別選sysadmin

          posted @ 2014-12-03 16:57 半導體 閱讀(648) | 評論 (0)編輯 收藏

          IREPORT報表實現

               摘要: 一、在JSP中通過傳參數實現源代碼:(在jasper模板中定義好查詢條件及參數) Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--><%@ page language="java" import="java.util...  閱讀全文

          posted @ 2014-11-19 11:47 半導體 閱讀(386) | 評論 (0)編輯 收藏

          Spring MVC程序中得到靜態資源文件css,js,圖片文件的路徑問題總結

          Spring MVC程序中得到靜態資源文件css,js,圖片

          文件的路徑


          問題總結

          用 Spring MVC 開發應用程序,對于初學者有一個很頭疼的問題,那就是程序數據都已經查詢出來了,但界面樣式仍然十分丑陋,加載不了 css,js,圖片等資源文件。當你在瀏覽器上直接輸入某個css文件的路徑時,直接得到404錯誤,而路徑肯定沒有錯,其原因就在于在web.xml 中配置了類似如下的 spring servlet:
          程序代碼 程序代碼

          <servlet>
              <servlet-name>mvc-dispatcher</servlet-name>
              <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
              <load-on-startup>1</load-on-startup>
            </servlet>
            <servlet-mapping>
              <servlet-name>mvc-dispatcher</servlet-name>
              <url-pattern>/</url-pattern>
            </servlet-mapping>

          請注意  <url-pattern>/</url-pattern> 這表示這個servlet 攔截了所有的請求,包括css,js等。所以出現上面描述的情況。如何解決這個css,js等路徑問題呢,有如下幾種解決方案.

          1. 使用spring mvc resource 去讀取靜態文件
          比如在 WEN-INF 下建立static 文件夾,并在 static 文件夾里面建立css 文件夾,然后建立 1.css  文件.
          修改 mvc-dispatcher-servlet.xml 文件
          程序代碼 程序代碼

          <mvc:resources mapping="/static/**" location="/WEB-INF/static/"/>

          這樣配置之后,可以通過 http://your-ip:port/your-app/static/css/1.css 直接訪問了。

          2. 采用 default servlet
          在 web.xml  里面配置
          程序代碼 程序代碼

          <servlet-mapping>
              <servlet-name>default</servlet-name>
              <url-pattern>/static/*</url-pattern>
          </servlet-mapping>

          這樣做了之后,所有前綴為static 的請求都交給default servlet 去處理。如果你請求  http://your-ip:port/your-app/static/css/1.css ,就表示在 webcontent 目錄下的css文件夾下的1.css文件。

          3. 通過文件擴展名進行處理
          在 web.xml 里面配置
          程序代碼 程序代碼

          <servlet-mapping>
              <servlet-name>default</servlet-name>
              <url-pattern>*.png</url-pattern>
              <url-pattern>*.js</url-pattern>
              <url-pattern>*.css</url-pattern>
          </servlet-mapping>


          4. 對spring servlet 不用restful 風格。在url 上加上前綴
          程序代碼 程序代碼

          <servlet-mapping>
              <servlet-name>mvc-dispatcher</servlet-name>
              <url-pattern>/app</url-pattern>
          </servlet-mapping>

          這樣做的目的是讓 dispatchservlet 去攔截以/app 開頭的那些 URL,并不攔截css,js等。

          5. 對spring servlet 不用restful 風格。在url 上加上后綴
          程序代碼 程序代碼

          <servlet-mapping>
              <servlet-name>mvc-dispatcher</servlet-name>
              <url-pattern>*.do</url-pattern>
          </servlet-mapping>

          這樣做的目的是讓 dispatchservlet 只攔截*.do 的url. 并不攔截css,js等。

          上面介紹的5種方法,根據情況自己任意選擇一種,現在沒辦法說那種好,那種方法不好,都有可取之處,用在不同的場景而已。

          posted @ 2014-08-24 23:12 半導體 閱讀(23879) | 評論 (3)編輯 收藏

          easy ui API中文文檔

          http://www.cnblogs.com/Philoo/archive/2011/10/01/jeasyui_api_layout.html

          posted @ 2014-08-20 15:01 半導體 閱讀(248) | 評論 (0)編輯 收藏

          僅列出標題
          共27頁: 上一頁 1 2 3 4 5 6 7 8 9 下一頁 Last 
          主站蜘蛛池模板: 阳西县| 濮阳县| 洞口县| 资溪县| 旺苍县| 鲁山县| 阳原县| 垦利县| 凤山县| 嘉禾县| 定远县| 仙桃市| 张家口市| 江油市| 永嘉县| 绵竹市| 铁岭市| 英德市| 安塞县| 高淳县| 丹巴县| 嘉禾县| 定远县| 奉化市| 措勤县| 桂阳县| 西丰县| 双柏县| 湛江市| 通辽市| 河西区| 鄂托克旗| 峨眉山市| 富蕴县| 皮山县| 钦州市| 台州市| 黎川县| 宜丰县| 密山市| 涪陵区|