2012-03-15 40 views
0

,定義了兩個ImageViews的高度和設置像這樣的背景:的ImageView - 如何強制縮放的寬度均勻地具有限定

int tmpID = findViewById(R.id.mypng) 
    ImageView tmpIV.setBackgroundResource(tmpID); 

而這是與圖像視圖的XML:

<RelativeLayout 
     android:id="@+id/myDisplay" 
     android:layout_width="wrap_content" 
     android:layout_height="100dp" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="0dp" > 

     <ImageView 
      android:id="@+id/b1" 
      android:layout_width="300dp" 
      android:layout_height="match_parent" 
      android:contentDescription="@string/anyStringValue" 
      android:scaleType="fitCenter" /> 

     <ImageView 
      android:id="@+id/b2" 
      android:layout_width="300dp" 
      android:layout_height="match_parent" 
      android:layout_toRightOf="@+id/b1" 
      android:contentDescription="@string/anyStringValue" 
      android:scaleType="fitCenter" /> 

現在應該發生的情況是,當我設置圖像視圖的背景時,png會將其大小統一調整爲父級100dp高度,而寬度應該均勻縮放 - 向下或向上。

我試圖設置寬度越來越大。例如,當它設置爲300dp時,它將png寬度拉伸到300和100高度,而它應該僅拉伸它的寬度以至於高度達到100.

我以爲「fitCenter」會這樣做。我也嘗試了所有其他屬性值,但沒有運氣。

謝謝!

+1

您是否嘗試過「centerInside」刻度類型? – dymmeh 2012-03-15 18:55:13

+0

可能的重複[如何在ImageView中縮放圖像以保持縱橫比](http://stackoverflow.com/questions/2521959/how-to-scale-an-image-in-imageview-to-keep-the - 方面比) – 2012-03-15 18:56:18

+0

- > dymmeh,謝謝,但「centerInside」看起來完全一樣。 - > Ted Hopp,我有一個ImageView,需要用一個Drawable ID以編程方式設置 - 另一個問題是類似的 - 但使用xml或setImageBitmap。我需要它編程,並且我沒有Drawable id的位圖。或者我需要首先從R.drawable.id轉換爲位圖? – user387184 2012-03-15 19:11:54

回答

1

android:scaleType只關心android:src爲什麼不使用該參數?你真的想使用背景,並不設置來源?

也許yoy可以有一個RelativeLayout,每個ImageView有兩個ImageView,一個是「背景縮放」,另一個是真實源。

+0

我甚至嘗試以編程方式設置位圖,這應該等同於android:src。它仍然無法正常工作。原因似乎是以編程方式操作這些ImageView的內容。我最終將我的內容繪製到畫布/位圖並將其放入單個ImageView中 – user387184 2012-03-15 23:48:44

相關問題