導航:首頁 > 操作系統 > android讀取圖片的bitmap

android讀取圖片的bitmap

發布時間:2022-06-16 15:05:51

android 讀取Bitmap的幾種方式

想讀取本地項目里的資源圖片,但又不能用到R文件。查了很多資料終於找到了。 現總結以下幾種讀取Bitmap的方法。 1.以文件流的方式,假設在sdcard下有 test.png圖片 FileInputStream fis = new FileInputStream("/sdcard/test.png"); Bitmap bitmap=BitmapFactory.decodeStream(fis); 2. 以R文件的方式,假設 res/drawable下有 test.jpg文件Bitmapbitmap =BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test); 3.以ResourceStream的方式,但不用到R文件。 Bitmap.bitmap=BitmapFactory.decodeStream(getClass().getResourceAsStream(「/res/drawable/test.png」)); 圖片名就可以讀取到 Bitmap啦。 BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 2; //圖片寬高都為原來的二分之一,即圖片為原來的四分一 //以上代碼可以優化內存溢出,但它只是改變圖片大小,並不能徹底解決內存溢出。

❷ android7.0怎麼從uri中取出bitmap

private Bitmap getBitmapFromUri(Uri uri)
2 {
3 try
{
5 // 讀取uri所在的圖片
Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
7 return bitmap;
8 }
9 catch (Exception e)
10 {
11 Log.e("[android]", e.getmessage());
12 Log.e("[Android]", "目錄為:" + uri);
13 e.printStackTrace();
14 return null;
15 }
16 }

❸ android如何從SD卡讀取圖片文件轉化為bitmap

SDK 中有專門取SD卡路徑的靜態方法
public String getSDPath(){
File sdDir = null;
boolean sdCardExist = Environment.getExternalStorageState()
.equals(Android.os.Environment.MEDIA_MOUNTED); //判斷sd卡是否存在
if (sdCardExist) {
sdDir = Environment.getExternalStorageDirectory();//獲取跟目錄
}
return sdDir.toString();
}

不要寫死路徑

❹ Android如何最優化的讀取一張Bitmap

全白java code int[] pix = new int[picw * pich];

for (int y = 0; y < pich; y++)
for (int x = 0; x < picw; x++)
{
int index = y * picw + x;
int r = ((pix[index] >> 16) & 0xff)|0xff;
int g = ((pix[index] >> 8) & 0xff)|0xff;
int b =( pix[index] & 0xff)|0xff;
pix[index] = 0xff000000 | (r << 16) | (g << 8) | b;

}
bm1.setPixels(pix, 0, picw, 0, 0, picw, pich);
BitmapDrawable bmp11=new BitmapDrawable(bm1);

❺ android 怎麼獲取webview中的圖片資源bitmap

載入html頁面時,會在/data/data/應用package目錄下生成database與cache兩個文件夾
cache裡面會保存webview中的圖片文件,讀的話需要bitmap解析流就可以了。

❻ android bitmap 從網路獲取圖片並處理問題 溢出

在 Java中,JavaVM擁有自動管理內存的功能,Java的GC能夠進行垃圾回收,但是如果ImageView使用過多的Bitmap的話,經常會報OOM(內存溢出)。

造成內存溢出及解決方案:

  1. 使用BitmapFactory.decodeStream替代createBitmap方法

    原因是該方法直讀取圖片位元組,調用JNI>>nativeDecodeAsset()來完成decode,無需再使用java層的createBitmap。

  2. 使用壓縮讀取技術

    BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;

BitmapFactory.decodeFile(imageSdUri, options);

final int height = options.outHeight;

final int width = options.outWidth;

options.inSampleSize = 1;

int w = 320;

int h = 480;

h = w*height/width;//計算出寬高等比率

int a = options.outWidth/ w;

int b = options.outHeight / h;

options.inSampleSize = Math.max(a, b);

options.inJustDecodeBounds = false;

Bitmap bitmap = BitmapFactory.decodeFile(imageSdUri, options);


3.及時釋放Bitamp
Bitmap對象在不使用時,我們應該先調用recycle()釋放內存,然後才它設置為null.雖然recycle()從源碼上看,調用它應該能立即釋放Bitmap的主要內存,但是測試結果顯示它並沒能立即釋放內存。但是我它應該還是能大大的加速Bitmap的主要內存的釋放。

❼ android中怎麼獲取一個bitmap在屏幕中位置

是要編寫一個這樣的功能么,android提供的api裡面一般圖片都是bitmap,可以通過canvas.drawbitmap的方法在view進行圖片的繪制,在方法中需要進行傳入一個類型為matrix的參數,設置martrix的一些參數就可以進行圖片的放大的繪制,這只是顯示,也就是mvc中的view層,然後通過提供的一些觸摸函數的重寫並實現自己需要的一些功能,如拖動,實際上就是改變bitmap繪制的位置。關於觸摸的處理和圖片的繪制可以在網上進行一些教程的搜索,我就不羅列了,最終就是需要通過控制函數來改變圖片的繪制方式,這也許就是你所需要的功能。

❽ android,如何讀取資源文件里的圖片到bitmap里

  1. 方式:以R文件的方式

  2. 路徑:假設 res/drawable下有 test.jpg文件

    Bitmap bitmap=BitmapFactory.decodeResource(this.getContext().getResources(), R.drawable.test)

❾ android 已經知道路徑怎麼將路徑中的圖片變成Bitmap

/**
* 獲取本地圖片並指定高度和寬度
*/
public static Bitmap getNativeImage(String imagePath)
{
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
// 獲取這個圖片的寬和高
Bitmap myBitmap = BitmapFactory.decodeFile(imagePath, options); //此時返回myBitmap為空
//計算縮放比
int be = (int)(options.outHeight / (float)200);
int ys = options.outHeight % 200;//求余數
float fe = ys / (float)200;
if (fe >= 0.5)
be = be + 1;
if (be <= 0)
be = 1;
options.inSampleSize = be;
//重新讀入圖片,注意這次要把options.inJustDecodeBounds 設為 false
options.inJustDecodeBounds = false;
myBitmap = BitmapFactory.decodeFile(imagePath, options);
return myBitmap;
}
/**
* 以最省內存的方式讀取本地資源的圖片 或者SDCard中的圖片
* @param imagePath
* 圖片在SDCard中的路徑
* @return
*/
public static Bitmap getSDCardImg(String imagePath)
{
BitmapFactory.Options opt = new BitmapFactory.Options();
opt.inPreferredConfig = Bitmap.Config.RGB_565;
opt.inPurgeable = true;
opt.inInputShareable = true;
//獲取資源圖片
return BitmapFactory.decodeFile(imagePath, opt);
}

閱讀全文

與android讀取圖片的bitmap相關的資料

熱點內容
南詔pdf 瀏覽:745
windows如何代碼bat啟動伺服器 瀏覽:454
軟體太卡與伺服器有什麼關系 瀏覽:402
給心理治療師pdf 瀏覽:220
robinhood加密交易條件 瀏覽:313
衛生間解壓方法 瀏覽:452
u盤如何做加密文件放照片 瀏覽:331
文件夾自己加了exe 瀏覽:262
小豬cms直播系統源碼 瀏覽:878
山東廣電雲伺服器 瀏覽:354
javadate與mysqldate 瀏覽:244
javalong比較 瀏覽:12
加密大師看不見加密文件 瀏覽:307
想做一個業余程序員 瀏覽:793
python選出行 瀏覽:249
cat命令windows 瀏覽:910
python算術游戲 瀏覽:532
常微分方程第二版pdf 瀏覽:25
phpJava學多久 瀏覽:724
php博客畢業設計 瀏覽:796