編輯:關於Android編程
1.因為在內存中分配給圖片的堆棧只有8M,當圖片過大的時候,會出現內存洩露,如何解決呢。
BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 3; //圖片寬高都為原來的1/3,即圖片大小為原來的1/9
//以上代碼可以優化內存溢出,但它只是改變圖片的大小,即是圖片的縮略圖,並不能徹底解決內存溢出
2.圖片的壓縮
bitmap.compress(Bitmap.CompressFormat.PNG, 80, outStream); //80為壓縮率,即80%,對圖片壓縮再保存
3.圖片用過之後要清除緩存,即使Android虛擬機會定期進行垃圾回收,但是在Android的圖片處理過程中用到了java的庫函數和c的庫函數,
而c的庫函數所占用的內存無法通過垃圾回收來釋放,所以特別是對於大的圖片,我們要在使用完之後手動回收其內存空間,否則將會導致內存洩露
public void clearMemery(Bitmap bitmap) {
if (bitmap != null && !bitmap.isRecycled()) {
bitmap.recycle();
bitmap = null;
}
}
4.Android讀取BitMap的幾種方式
a. FileInputStream fis = new FileInputStream(/sdcard/test.png);
Bitmap bitmap = BitmapFactory.decodeStream(fis);
b. InputStream inputStream=getBitmapInputStreamFromSDCard("test.png");
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
c. Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.test);
d. String SDCarePath=Environment.getExternalStorageDirectory().toString();
String filePath=SDCarePath+"/"+"test.png";
Bitmap bitmap = BitmapFactory.decodeFile(filePath, null);
e. Bitmap bitmap = BitmapFactory.decodeStream(getClass().getResourceAsStream("/res/drawable/test.png"));
android矢量動畫!直接來個例子就明白了!(這裡我把與動畫無關的屬性都用…表示)首先你要有個矢量圖比如這個矢量圖xml文件叫”vector1
概述Healthd是android4.4之後提出來的一種中介模型,該模型向下監聽來自底層的電池事件,向上傳遞電池數據信息給Framework層的BatteryServic
本文實例講述了Android上下文菜單用法。分享給大家供大家參考。具體如下:上下文菜單不同於選項菜單,選項菜單服務於Activity,而上下文菜單則是注冊到某個View對
前言Android 開發中,我們經常需要實現圖片的圓形/圓角的效果,我們可以使用兩種方式來實現這樣的效果。一種是使用Xfermode,另一種是BitmapShader來實