【发布时间】:2013-02-25 04:00:24
【问题描述】:
我正在创建一个需要将大图像解码为位图以显示在 ImageView 中的应用。
如果我只是尝试将它们直接解码为位图,我会收到以下错误 " 位图太大,无法上传到纹理中 (1944x2592, max=2048x2048)"
所以为了能够显示分辨率过高的图像,我使用:
Bitmap bitmap = BitmapFactory.decodeFile(path);
if(bitmap.getHeight()>=2048||bitmap.getWidth()>=2048){
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int width = metrics.widthPixels;
int height = metrics.heightPixels;
bitmap =Bitmap.createScaledBitmap(bitmap, width, height, true);
}
这可行,但我真的不想像现在在 if 语句中那样硬编码 2048 的最大值,但我不知道如何获得设备位图的最大允许大小
有什么想法吗?
【问题讨论】: