Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android獲取圖片實際大小兼容平板電腦

Android獲取圖片實際大小兼容平板電腦

編輯:關於Android編程

項目中有個圖片在平板電腦中顯示特別小的原因,一直苦於沒找到原因,也沒有平板電腦測試,今天找了個修改分辨率的,編寫相關方法終於處理了,記錄下比較:
好讓以後不造輪子。
主要是獲取文章相關圖片顯示問題,直接用getIntrinsicWidth()方法獲取,getIntrinsicWidth()獲取的並非圖片的實際寬度,在手機看還過得去,不會相差太遠,但在平板電腦看,
它簡直就是一個小女孩,太害羞了,以至於顯示那麼小。
回到正題:
解決方法:
1.獲取手機分辨率 用該分辨率乘以其密度
   if (file.exists()) {
            // 如果文件已經存在,直接返回
            Drawable drawable = Drawable.createFromPath(savePath);
            DisplayMetrics  dm = new DisplayMetrics();
            //獲取手機屏幕分辨率
            dm = context.getResources().getDisplayMetrics();
             //屏幕實際大小
             //  int screenWidth = dm.widthPixels;
             //  int screenHeight = dm.heightPixels;
             float density = dm.density;
             //圖片實際大小
             int imgWidth = (int) (drawable.getIntrinsicWidth() *density);
             int imgHeight = (int)( drawable.getIntrinsicHeight() * density);
             //drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
              drawable.setBounds(0, 0, imgWidth,imgHeight);
            //}
            return drawable;

        }


沒有圖片時加載

private void setDrawable(Drawable nDrawable) {
            drawable = nDrawable;
            //drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
            //setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
            
            DisplayMetrics  dm = new DisplayMetrics();
            //獲取手機屏幕分辨率
            dm = context.getResources().getDisplayMetrics();
             //屏幕實際大小
             //  int screenWidth = dm.widthPixels;
             //  int screenHeight = dm.heightPixels;
             float density = dm.density;
             //圖片實際大小
             int imgWidth = (int) (drawable.getIntrinsicWidth() *density);
             int imgHeight = (int)( drawable.getIntrinsicHeight() * density);
             //drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
              drawable.setBounds(0, 0, imgWidth,imgHeight);
              setBounds(0, 0, imgWidth, imgHeight); //注意加上,不加會出現圖片和文字混淆在一起
        }
原文地址:http://hongshengpeng.com/article/show/254.aspx

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