早上好, 我有一个问题。在我的应用程序中,我试图加载BitMap图像。作为Android建议(http://developer.android.com/training/displaying-bitmaps/load-bitmap.html)的指南,我使用方法
decodeSampledBitmapFromResource(Resources res, int resId,int reqWidth, int reqHeight)
它的工作完美,但起初没有,因为我根据智能手机的尺寸设置了reqWidth和reqHeight(高度:2560;宽度:1440)。为此,该应用程序产生了以下错误:
12-16 12:21:51.911 5401-6627 /? E / ACRA:java.lang.OutOfMemoryError:无法分配带有13002080个空闲字节的44236812字节分配和12MB直到OOM 12-16 12:21:51.911 5401-6627 /? E / ACRA:at dalvik.system.VMRuntime.newNonMovableArray(Native Method)等....
但是当我改变高度和宽度时,正如指南建议的那样(100 x 100)它可以工作,之后我将其增加到500 x 500.为此,我的问题是如何为不同设备设置此值?或者这个值可以保持静态,因此它可以适应尺寸屏幕吗?
抱歉我的英语不好我是意大利人。 我希望我已经清楚了! :)
答案 0 :(得分:1)
您可能需要的是Android的功能,它根据用户的屏幕使用不同的可绘制资源。看看here。
在您的情况下,您将手动创建不同大小的图片并将其相应地放入res
内的不同文件夹中。之后Android系统将根据设备处理正确图像的选择。
答案 1 :(得分:0)
我建议您使用排球库获得更好的体验,请查看链接: http://developer.android.com/training/volley/request.html
答案 2 :(得分:0)
尝试使用xml文件
的代码<ImageView
android:id="@+id/img"
android:layout_width="100dp"
android:layout_height="100dp"
android:background="@drawable/ic_launcher"
/>
以编程方式可以设置图像大小
img.setImageResource(R.drawable.login_avatar);
img.getLayoutParams().height = 200;
img.getLayoutParams().width = 150;