2013-04-29 93 views
1

我有一個圖像,我從我的android應用程序從互聯網上下載。我不希望這個圖像被調整/縮放。無論如何,我可以阻止圖像被縮放?防止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。有沒有人有任何其他想法?

奇怪的是這不是在模擬器中發生的。

回答

0

Adnan,使用你的例子給圖像視圖一個固定的寬度和高度,並刪除scaleType = centerImage固定的問題。

0

儘量設置

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

編輯:

不知道爲什麼,但改變

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

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

解決我的問題。

+0

圖像仍然縮放。另一個煩人的部分,它在模擬器中正常工作,但在實際的4.2設備(Samsung Galaxy S4)上縮放。 – 2013-04-29 16:33:03

+0

請參閱新的編輯。 – Neoh 2013-04-29 16:39:39

+0

剛剛嘗試過新的編輯,仍在縮放。 – 2013-04-29 17:56:37

0

你把所有的圖像放在簡單的「可繪製」文件夾中。我的意思是沒有擴展hdpi,mdpi等。

+0

我在顯示網站前下載圖像。所以我沒有選擇將它們放在可繪製的文件夾中。 – 2013-05-01 18:59:39

+0

然後給你的imageView一個修正高度和寬度。例如。 android:layout_width =「100dp」 android:layout_height =「100dp」您也可以通過獲取下載的位圖大小來動態設置圖片視圖大小。 – Adnan 2013-05-03 20:42:56

+0

我剛剛試過...:(我加入此,它仍然調整圖像大小: \t \t \t conditionImageView.setImageBitmap(conditionImage); \t \t \t \t \t \t RelativeLayout.LayoutParams sizeParams =新RelativeLayout.LayoutParams(conditionImage.getWidth(),conditionImage。的getHeight()); \t \t \t sizeParams.addRule(RelativeLayout.CENTER_HORIZONTAL); \t \t \t sizeParams.addRule(RelativeLayout.BELOW,textMain.getId()); \t \t \t \t \t \t conditionImageView.setLayoutParams(sizeParams); – 2013-05-06 19:05:59

0

這是一個簡單的問題。當ImageView比渲染圖像本身大得多時會發生縮放。爲了避免這種醜陋的像素化的scailing,只需「包裝內容」imageview,你應該得到你的原始圖像質量。

0

我通過硬編碼的ImageView的height(因爲我事先知道)解決了這個問題,然後設置scaleTypecropCenter

看到下面的代碼更clearity。

<ImageView 
      android:id="@+id/iv" 
      android:layout_width="match_parent" 
      android:layout_height="75dp" 
      android:scaleType="centerCrop" />