Androidは画像の実際のサイズと互換性のあるタブレットを取得します
2356 ワード
プロジェクトの中で1つのピクチャーはタブレットの中で特に小さい原因を表示して、ずっと原因を探し当てていないことに苦しんで、タブレットのテストもなくて、今日解像度を修正することを探して、関連する方法を編纂してやっと処理して、記録の下で比較します:
これから車輪を作らないようにする.
主に文章関連の画像表示の問題を取得して、直接getIntrinsicWidth()の方法で取得して、getIntrinsicWidth()が取得したのは画像の実際の幅ではありませんて、携帯電話で見るのはまあまあで、あまり差はありませんが、タブレットで見ると、
それはまるで女の子で、耻ずかしくて、そんなに小さく表示されています.
本題に戻ります.
解決方法:
1.携帯電話の解像度を取得するその解像度に密度を乗じる
画像なしでロード
これから車輪を作らないようにする.
主に文章関連の画像表示の問題を取得して、直接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