如何设置位图图像的高度和宽度?

时间:2015-12-17 09:47:40

标签: android

早上好, 我有一个问题。在我的应用程序中,我试图加载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.为此,我的问题是如何为不同设备设置此值?或者这个值可以保持静态,因此它可以适应尺寸屏幕吗?

抱歉我的英语不好我是意大利人。 我希望我已经清楚了! :)

3 个答案:

答案 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;