我正在制作一个 android 应用程序,在其中我使用缩放位图
bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);
这张图片在大屏幕手机上看起来足够好......但在小尺寸手机上使用时就变得不成比例......有人知道解决方案吗?
我正在制作一个 android 应用程序,在其中我使用缩放位图
bitmap2 = Bitmap.createScaledBitmap(bmp, 150, 150, true);
这张图片在大屏幕手机上看起来足够好......但在小尺寸手机上使用时就变得不成比例......有人知道解决方案吗?
您需要在 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。
获取屏幕的高度和宽度并计算您的尺寸
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);
根据您的要求计算。