0

一種ImageView的獲取的圖像幷包裝所述內容因此,如果圖像具有100×100像尺寸,ImageView的具有相同的尺寸。我只想指定此的ImageViewlayout_height,當它的圖像匹配重新大小正確的的ImageViewlayout_width的Android UI設計自動ImageView的重新大小

下面是一個例子:

image size = 100x100;

ImageView's layout_height = 200;

ImageView的layout_width應該成爲200而不是100。

這可能嗎?

回答

1

您需要創建自定義ImageView並覆蓋onMeasure,以使視圖始終呈現方形。

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    super.onMeasure(widthMeasureSpec, heightMeasureSpec); 

    SQUARE_DIMENSION = this.getMeasuredHeight(); // whatever height you want here 

    this.setMeasuredDimension(SQUARE_DIMENSION, SQUARE_DIMENSION); 
} 
+0

您正在將我的示例作爲私人案例。如果layout_width = 200,layout_height應該是600 - > ImageView 200x600,您也可以使用尺寸爲100x300的圖像。我給出的例子很容易計算整數,但它可能更復雜。我希望你現在明白我的觀點。 – nenito

+1

那麼我的例子仍然存在,如果你想精確控制你如何調整視圖大小,你需要重寫onMeasure。您用來確定尺寸取決於您。在你的情況下,這聽起來像是在向上或向下縮放圖像視圖時試圖保持圖像的縱橫比。如果是這種情況,那麼您需要獲取圖像大小並相應地調整代碼。 – jsrsoftware