我的怀疑很简单。该应用程序有 4 个目录(ldpi、mdpi、hdpi、xhdpi),图像相同但 dpi 不同。对于 mdpi 是 160dpi,我使用 atm 的那个。
我从网上下载的图像会怎样?我有一个新闻阅读器,这意味着每个新的至少有一个图像。我想为所有智能手机提供一个像样的图像。
我需要不同类型的图像还是只为所有人下载相同的图像?我可以知道哪种分辨率最适合每个特定的智能手机吗?
我找不到处理这个问题的“官方”方式,所以我不知道它对于我们计划下载的图像是否重要的 dpi。
问候!
ldpi 表示 ~120dpi,mdpi 表示 ~160dpi,hdpi 表示 ~240dpi。xhdpi 表示 ~320dpi。您可以按照 ldpi:mdpi:hdpi:xhdpi 的 3:4:6:8 比例获取资源。
现在您可以为所有分辨率提供不同的图像,它会更好,并且一定没有问题。如果您不能为所有人提供不同的图像,则为 xhdpi 和运行时提供图像,您可以根据屏幕分辨率调整图像大小。
您可以使用以下示例代码来了解运行时的屏幕分辨率:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
switch (metrics.densityDpi) {
case 120:
//your stuff
break;
case 160:
////your stuff
break;
case 240:
///your suff
break;
case 320:
//your stuff
break;
}
调整位图大小的示例代码::
Bitmap mIcon_val = your bitmap;
Matrix matrix = new Matrix();
matrix.postScale((float)newwidth/mIcon_val.getWidth(), (float)newheight/mIcon_val.getHeight());
Bitmap resizedBitmap = Bitmap.createBitmap(mIcon_val, 0, 0, mIcon_val.getWidth(), mIcon_val.getHeight(), matrix, true);
现在您有了新的位图新的宽度和高度,您可以使用它。
如果您想构建一个出色的应用程序,您需要管理每个图像以适合正确的智能手机,如果您为所有人下载相同的图像,它看起来不会很好。
欲了解更多信息,请访问: 支持多个屏幕