1

我在我的 android 应用程序中有一个从互联网下载的图像。我不希望此图像被调整大小/缩放。无论如何我可以阻止图像被缩放吗?

这是 ImageView 的 XML 条目:

<ImageView 
   android:id="@+id/conditionImage"
   android:scaleType="center"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:layout_below="@id/textMain"
   android:contentDescription="@string/noaaLogoDescription" />

这是我在图像视图中显示它的代码:

BitmapFactory.Options bmpOptions = new Options();
bmpOptions.inScaled = false;
URL url = new URL("URLPATHTOIMAGE");
ImageView conditionImageView = (ImageView)findViewById(R.id.conditionImage);
InputStream content = (InputStream)url.getContent();
conditionImage = BitmapFactory.decodeStream(content, null, bmpOptions);

conditionImageView.setImageBitmap(conditionImage);

我尝试将 ImageView XML 元素中的 scaleType 更改为使用矩阵、中心和 centerInside。我最后一次尝试是使用上面的代码将 inScale 设置为 false。有没有人有任何其他想法?

奇怪的是,这并没有在模拟器中发生。

4

5 回答 5

0

这是一个简单的问题。当 ImageView 比渲染图像本身大很多时,就会发生缩放。为了避免这种丑陋的像素化缩放,只需“包装内容”图像视图,您就应该获得原始图像质量。

于 2013-12-30T15:53:27.750 回答
0

Adnan,使用您为图像视图提供固定宽度和高度并删除 scaleType=centerImage 的示例解决了该问题。

于 2013-05-20T19:59:34.233 回答
0

我通过对 imageview 进行硬编码(正如我事先知道的那样)解决了这个问题height,然后将其设置scaleTypecropCenter

请参阅下面的代码以获得更清晰的信息。

 <ImageView
            android:id="@+id/iv"
            android:layout_width="match_parent"
            android:layout_height="75dp"
            android:scaleType="centerCrop" />
于 2014-02-17T09:34:36.073 回答
0

尝试设置

android:layout_width="wrap_content"
android:adjustViewBounds="true"

编辑:

不知道为什么,但正在改变

conditionImageView.setBackgroundDrawable(getResources().getDrawable(R.id.conditionImage));

conditionImageView.setImageDrawable(getResources().getDrawable(R.id.conditionImage));

解决了我的问题。

于 2013-04-29T15:57:40.263 回答
0

您是否将所有图像放在简单的“可绘制”文件夹中。我的意思是不扩展 hdpi、mdpi 等。

于 2013-04-29T19:52:03.170 回答