【发布时间】:2016-03-09 17:45:13
【问题描述】:
我正在构建一个应用程序来从图库中加载图像,到目前为止它对于某些图像运行良好,但是我不断收到消息“位图太大而无法上传到纹理中 (2988x5312, max=4096x4096)”
这是显示位图的代码。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK && data != null && data.getData() != null)
{
Uri filePath = data.getData();
try {
bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), filePath);
Picasso.with(MainActivity.this).load(filePath).error(R.drawable.smile).into(imageView1);
} catch (IOException e)
{
e.printStackTrace();
}
}
}
我能做些什么来解决这个问题?调整图像大小?或检查图像是否太大?这里的图像可接受的分辨率是多少?
【问题讨论】:
-
调整图像的大小会减少内存占用,并且不会在项目中出现 bitmapoutofmemory 错误。如果您在保持纵横比的情况下重新缩放它,那么它看起来不会模糊。