【问题标题】:Android: How to stop Android 1.6+ from scaling imagesAndroid:如何阻止 Android 1.6+ 缩放图像
【发布时间】:2010-11-03 21:36:44
【问题描述】:

我更新了我的构建以针对 Android 1.6 构建,现在我的位图在高密度屏幕上按比例缩小。我不想要这种行为。我试了一下:

http://blog.tomgibara.com/post/190539066/android-unscaled-bitmaps

但图像仍在缩放,除非我将它们设置为特定的高度和宽度。如果我使用wrap_content,它们会按比例缩小。

我有一个图像加载器,它使用未缩放的位图加载器来创建像这样的可绘制对象:

Bitmap bm = UnscaledBitmapLoader.loadFromResource(imageBufferInputStream);
drawable = new BitmapDrawable(bm);

我稍后将其分配给 ImageView,如下所示:

imageView.setImageDrawable( copyBitmapDrawable( (BitmapDrawable) drawable) );

【问题讨论】:

    标签: android bitmap scale drawable


    【解决方案1】:

    为了在从资源加载图像时不缩放图像(例如,使用 BitmapFactory.decodeResource),您必须将其定位在 res/drawable-nodpi 中,而不是通常的 drawable、drawable-ldpi 等。

    【讨论】:

    • 我正在从网上下载这些。
    【解决方案2】:

    使用

    new BitmapDrawable(this.getResources(), bmp); 
    

    而不是

     new BitmapDrawable(bmp);
    

    应该能解决问题。

    【讨论】:

    • 我刚刚花了一段时间试图解决这个完全相同的问题,而这就是解决它所需的全部内容。赞成,因为这是一个更有用的通用解决方案。
    【解决方案3】:

    Drawable 包裹位图是个问题。 Drawable 缩放 Bitmap。不要使用Drawable,而是直接使用imageView.setImageBitmap(Bitmap)Bitmap 分配给ImageView

    【讨论】:

      【解决方案4】:

      使用ImageView.ScaleTypeCENTER 常量不会进行缩放,所以我想这就是您要寻找的。​​p>

      顺便问一下,您是使用像素还是凹陷作为尺寸单位?使用 dips(与密度无关的像素)是一种标准化多种分辨率显示的方法。你会发现一些提示here

      【讨论】:

      • 我已经尝试过了,但它不起作用。在我将其分配给 ImageView 之前,有些东西正在对其进行缩放。
      • 有没有机会提供一些相关的代码 sn-ps (xml,java or whatnot)?
      猜你喜欢
      • 2012-05-29
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-30
      • 1970-01-01
      相关资源
      最近更新 更多