Android 显示大图像

Android 显示大图像,android,media,Android,Media,我通过以下方式从资源文件夹加载图像: bmp = BitmapFactory.decodeResource(getResources(), R.drawable.imagename); bmp = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage); 它适用于常规图像,但如果我尝试使用大文件(2100*1600),它将不会显示。在调试器中,我可以在“bmp”变量中看到图片,但它不会显示在设备上

我通过以下方式从资源文件夹加载图像:

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.imagename);
bmp = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
它适用于常规图像,但如果我尝试使用大文件(2100*1600),它将不会显示。在调试器中,我可以在“bmp”变量中看到图片,但它不会显示在设备上,也不会给出任何错误消息。但是如果我将源文件移动到drawable xxhdpi文件夹,那么它会正确显示。到现在为止,一直都还不错。但是,当用户从图片中选择自定义图像时,较大的图像仍然不起作用。我通过以下方式从图片文件夹加载:

bmp = BitmapFactory.decodeResource(getResources(), R.drawable.imagename);
bmp = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);

可绘制xxhdpi解决方案在此不适用。有人能给我指出正确的方向吗?

我解决这个问题的办法是添加

android:hardwareAccelerated = "false"
指向AndroidManifest.xml中的应用程序标记。显然,API试图将图像作为纹理加载到OpenGL——或者类似的东西。
现在应用程序运行缓慢,但至少一切正常。

图像对于设备来说可能太大了。您可以尝试加载预缩放图像您确定用户选择的小图像显示正确吗?因为我想需要fileprovider来访问内存…因为你最好缩小图像的比例。检查此[缩小不是一个选项。我需要全分辨率的图像。我使用TouchImageView来显示它,以便用户可以根据需要缩放和平移。是的,用户选择的小图像可以完美地工作。