2012-04-02 87 views
1

我有一個相對佈局裏面的imageView。當我創建活動時,我運行線程來從互聯網抓圖位圖並設置imageView。如何設置基於其父視圖大小的ImageView可繪製大小?

我想要的是調整該位圖是按比例的基於相對視圖尺寸,同時保持高寬比。用於調整圖像的代碼工作,但我做的是我通過調用myRelativeView.getWidth() & myRelativeView.getHeight()獲得相關視圖的大小,我覺得我不應該這樣做,因爲文檔說,這可能返回0。那麼,什麼是檢索的最佳方式在這種情況下相對視圖的大小?

+0

是整個屏幕的相對佈局還是嚴格的比例? – jersam515 2012-04-02 21:56:00

+0

不,在viewGroup中有一個操作欄和另一個相對佈局。 – Jimmy 2012-04-02 21:58:20

+0

對,但它們是否與屏幕成比例?如果是的話,請看下面的答案。 – jersam515 2012-04-02 21:59:06

回答

1

FIX您的要求:]

如果你不想改變大小 設置您的ImageView scaleType以「矩陣」

,如果你想改變大小,但保持縱橫比 設置您的ImageView scaleType爲 「fitCenter」(或fitStart fitEnd)

要代碼

ImageView image; 

image = (ImageView)findViewById(R.id.yourImageView1); 

image.setScaleType(ImageView.ScaleType.FIT_CENTER); 

更改爲常e in XML 示例

<ImageView 
    android:layout_width="match_parent" 
    android:layout_width="match_parent" 
    android:scaleType="fitCenter" 
    android:src="ic_launcher"/> 
+0

+1。 fitCenter應縮放圖像以適應並保持縱橫比。 – 2012-04-02 22:14:10

+0

但在這裏它也橫跨繪製,查看size..is有什麼辦法來設置繪製不跨越呢? – CoDe 2013-10-10 08:41:37

0

如果佈局與整個屏幕的比例,你可以嘗試:

Display display = getWindowManager().getDefaultDisplay(); 
     width = display.getWidth() 

// *比例;或-dp; 高度= display.getHeight() // * proportion2;或-dp;

+0

佈局未採用整個屏幕。有一個操作欄和另一個相對佈局。 – Jimmy 2012-04-02 21:59:28

+0

我知道比例的意思是高度的3/5和寬度的3/5。 – jersam515 2012-04-02 22:00:10

+0

不,還有其他使用dp測量的佈局。 – Jimmy 2012-04-02 22:01:21

相關問題