【问题标题】:how to set height and width of Bitmap image ?如何设置位图图像的高度和宽度?
【发布时间】:2015-12-17 09:47:40
【问题描述】:

早上好, 我有个问题。在我的应用程序中,我正在尝试加载位图图像。作为Android的指导建议(http://developer.android.com/training/displaying-bitmaps/load-bitmap.html)我使用该方法

decodeSampledBitmapFromResource(Resources res, int resId,int reqWidth, int reqHeight)

它工作得很好,但起初没有,因为我根据智能手机的尺寸(高度:2560;宽度:1440)设置了 reqWidth 和 reqHeight。为此,该应用程序产生了以下错误:

12-16 12:21:51.911 5401-6627/? E/ACRA:java.lang.OutOfMemoryError:无法分配 44236812 字节分配,其中 13002080 字节和 12MB 直到 OOM 12-16 12:21:51.911 5401-6627/? E/ACRA:在 dalvik.system.VMRuntime.newNonMovableArray(Native Method) 等....

但是当我改变高度和宽度时,按照指南的建议 (100 x 100) 它可以工作,在我将其增加到 500 x 500 之后。为此,我的问题是 如何为不同的设备动态设置此值?或者这个值可以保持不变,从而适应屏幕尺寸?

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

【问题讨论】:

    标签: android


    【解决方案1】:

    您可能需要的是 Android 的功能,该功能根据用户的屏幕使用不同的可绘制资源。看看here

    在您的情况下,您将手动创建不同尺寸的图片并将它们相应地放入res 内的不同文件夹中。之后,Android 系统将根据设备处理正确图像的选择。

    【讨论】:

    • mmm 我不是很明白,我的图片已经有不同的尺寸了,例如:image2.jpg image2.jpg (hdpi) image2.jpg (ldpi) image2.jpg (mdpi) image2 .jpg (xdpi) 你指的是这个吗?
    • 假设您有一个 100x100 像素的图像,并且您想将其用作可绘制对象。你把它放在你res中的drawable-mdpi文件夹中的名称my_drawable.png下。然后创建一个 75x75px 的图像并将其放入 drawable-ldpi 中,并以相同的名称 my_drawable.png。然后创建相同的 150x150 像素图像并将其作为 my_drawable.png 放在 drawable-hdpi 文件夹中,依此类推,直到您的图片与您想要使用的每个屏幕密度匹配
    【解决方案2】:

    我建议您使用 volley 库以获得更好的体验,请查看链接: http://developer.android.com/training/volley/request.html

    【讨论】:

      【解决方案3】:

      用 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;
      

      【讨论】:

      • 它可以工作,但我会将宽度和高度设置为 match_parent andimg.getLayoutParams().height = 200;将我的图像移动到左上角:(
      • @AntonioFaienza 这取决于您在(容器)布局中写入图像的位置,您需要从顶部或底部、左侧、右侧等设置边距以按照您的方式设置图像
      猜你喜欢
      • 2012-03-01
      • 2014-06-21
      • 1970-01-01
      • 2011-10-26
      • 2017-12-14
      • 1970-01-01
      • 2016-02-07
      • 2012-09-05
      • 2019-01-02
      相关资源
      最近更新 更多