我的应用中有200多个png图像。最高分辨率为1000 x 1000px(xxhdpi)。 问题是我的apk文件大小超过50 MB这是限制。所以,我想要制作一个可绘制的文件夹。但是在低分辨率设备上,我的图像效果不佳。
那么我如何在运行时调整图像大小以适应所有小屏幕设备?
如果上述方法不可行或不是一种非常有效的方法,请建议其他方法在相当程度上有效降低apk大小。
答案 0 :(得分:1)
使用此方法
public static Bitmap decodeSampledBitmapFromResource(Resources res,
int resId, int reqWidth, int reqHeight) {
// First decode with inJustDecodeBounds=true to check dimensions
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeResource(res, resId, options);
// Calculate inSampleSize
options.inSampleSize = calculateInSampleSize(options, reqWidth,
reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
return BitmapFactory.decodeResource(res, resId, options);
}
只需输入您的活动资源,图片的资源ID,所需的宽度和高度,此方法将返回调整大小的位图。
答案 1 :(得分:-1)
您是否尝试过使用
ViewTreeObserver obs = mTv.getViewTreeObserver();
obs.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw () { }