我正在制作一个Android应用程序,我使用它来缩放位图
bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);
这张图片在大屏幕的手机上看起来还不错......但是在小尺寸的手机上使用它时它会不成比例.....任何人都知道它的解决方案吗?
答案 0 :(得分:6)
您需要在dp中指定图像大小,就像在XML中一样。要从dp转换为像素,您可以使用以下内容:
float ht_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, ht, getResources().getDisplayMetrics());
float wt_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, wt, getResources().getDisplayMetrics());
对于您的特定用途:
float ht_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, getResources().getDisplayMetrics());
float wt_px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 150, getResources().getDisplayMetrics());
并使用ht_px和wt_px缩放位图。您可能需要将150更改为75。
答案 1 :(得分:4)
获取屏幕的高度和宽度并计算尺寸
DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(display);
int screenWidth = display.widthPixels;
int screenHeight = display.heightPixels;
就像你想要在屏幕的一半显示你的位图 -
bitmap2 = Bitmap.createScaledBitmap(bmp, screenWidth/2, screenHeight/2, true);
根据您的要求计算。