溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

同一張圖片從res和Sd卡中讀取顯示大小不一樣

發布時間:2020-07-25 19:29:57 來源:網絡 閱讀:1037 作者:zhichengAndroid 欄目:開發技術

 從res中顯示的圖片,系統會把它的密度默認為機器的密度,而從sd卡中讀出的圖片則默認為160dpi。因此在屏幕上顯示的大小可能會不一樣。解決辦法:

1.根據手機的屏幕密度更改圖片的大小。如手機屏幕密度為240dpi(hdpi),則可將圖片的大小改變為240/160*原圖大小,此時放在sd卡中再取出顯示就和原來的圖片放在res中取出顯示一樣。

2.應用中從sd卡中獲取的圖片,一般都是從網絡上下載下來的,因此,獲取資源時可將圖片的寬、高一并獲得,然后在程序中設置ImageView的寬高。

3.網上看到的,還沒試,先保存下來。

1、得到資源目錄下的drawable

BitmapDrawable drawable = (BitmapDrawable) getResources().getDrawable(R.drawable.test);

2、得到這個drawable的寬高

int w = drawable.getIntrinsicWidth();
int h = drawable.getIntrinsicHeight();

3、得到sdcard下目錄的bitmap 

Bitmap bitmap = Bitmap.createScaledBitmap(BitmapFactory.decodeFile(testUrl), w, h, true);

// Bitmap.createScaledBitmap(Bitmap src, int dstWidth, int dstHeight, boolean filter) 這個方法就是核心方法  設置createScaledBitmap filter 為true 即可變位圖

4、將bitmap轉換成drawable

BitmapDrawable drawable =new BitmapDrawable(getResources() , bitmap);

5、將drawable的密度設置為本機密度 即:
drawable.setTargetDensity(getResources().getDisplayMetrics());

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女