我有一个图像,我在我的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以使用matrix,center和centerInside。我最后一次尝试使用上面的代码将inScale设置为false。有没有人有其他想法?
奇怪的是,这在模拟器中没有发生。
答案 0 :(得分:0)
尝试设置
android:layout_width="wrap_content"
android:adjustViewBounds="true"
编辑:
不确定原因,但改变了
conditionImageView.setBackgroundDrawable(getResources().getDrawable(R.id.conditionImage));
到
conditionImageView.setImageDrawable(getResources().getDrawable(R.id.conditionImage));
解决了我的问题。
答案 1 :(得分:0)
您是否已将所有图像放在简单的“可绘制”文件夹中。我的意思是没有扩展hdpi,mdpi等。
答案 2 :(得分:0)
Adnan,使用您为图像视图提供固定宽度和高度的示例,同时删除scaleType = centerImage解决了问题。
答案 3 :(得分:0)
这是一个简单的问题。当ImageView比渲染图像本身大得多时,就会发生缩放。为了避免这种丑陋的像素化scailing,只需“包装内容”的imageview,你应该得到你原始的图像质量。
答案 4 :(得分:0)
我通过对imageview height
进行硬编码解决了这个问题(事先我已经知道了),然后将scaleType
设置为cropCenter
请参阅以下代码以获得更清晰的信息。
<ImageView
android:id="@+id/iv"
android:layout_width="match_parent"
android:layout_height="75dp"
android:scaleType="centerCrop" />