ImageView使用父布局高度

时间:2014-01-20 12:34:22

标签: android layout imageview scale fill-parent

我遇到与this question相同的问题,但那里的答案并没有解决问题。我已将ImageView子类化,并覆盖onMeasure,如此:

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

这不会改变任何内容,如果我尝试使用链接帖子的答案中的代码,ImageView变得不可见(0宽度/高度),因为heightMeasureSpec为0,{{1} }也是MeasureSpec.getSize(heightMeasureSpec)

目标是使0与父视图一样高,并使宽度相同(图像为方形)。Screenshot

编辑:这是我在布局XML中的ImageView:

ImageView

3 个答案:

答案 0 :(得分:2)

在ImageView中使用以下字段

android:scaleType="fitXY"
android:adjustViewBounds="true"

答案 1 :(得分:0)

无需子类化`ImageView'。就这样做

<ImageView
            android:id="@+id/slider_image"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:scaleType="fitXY" />

答案 2 :(得分:0)

如上所述here,您可以在运行时获取布局的高度。获取它并将其设置为imageview的宽度。并且图像将变为精确的正方形。