Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> android Bitmap

android Bitmap

編輯:關於Android編程

做安卓客戶端,顯示幫助文檔,幫助文檔很大,每次顯示都報內存溢出!試過很多方法最終成功使用的是:

public static Bitmap loadView(int resId, Activity activity, ImageView iv) {
		
		Display display = ((WindowManager) activity
				.getSystemService(Activity.WINDOW_SERVICE)).getDefaultDisplay();

		float displayWidth = display.getWidth();
		float displayHeight = display.getHeight();
		BitmapFactory.Options options = new BitmapFactory.Options();
		options.inPreferredConfig = Bitmap.Config.RGB_565;  
		options.inJustDecodeBounds = true;
		BitmapFactory.decodeResource(activity.getResources(), resId, options);
		float height = options.outHeight;
		float width = options.outWidth ;
		float scaleX = width / displayWidth  ;  
		float scaleY = height / displayHeight ; 
		float scale = 1;
		float scaleMax = Math.max(scaleX, scaleY);
		if (scaleMax > 1) {
			scale = scaleMax;
		}
		options.inJustDecodeBounds = false;
		int inSampleSize = (int) Math.ceil( scale ) ;  
		if(inSampleSize < 3){ //圖片太多,這裡是制定最少顯示的比例
			inSampleSize = 3 ; 
		}
		
		options.inSampleSize = inSampleSize ; 
		Bitmap bm = BitmapFactory.decodeResource(activity.getResources(),resId, options); 
		iv.setImageBitmap(bm) ;
		return bm ;
	}

這樣寫對於顯示一次的幫助文檔是很有幫助的,但是多次顯示還是會有問題,為什麼會這樣呢?因為android底層是用C,大家都知道java是會自動回收資源的, 但是C卻不會自動回收,於是找到Bitmap的recycle方法,這個方法要在該Bitmap不在使用的時候才能調用,否則在使用它是 它已經不存在。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved