我遇到与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
与父视图一样高,并使宽度相同(图像为方形)。
编辑:这是我在布局XML中的ImageView:
ImageView
答案 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的宽度。并且图像将变为精确的正方形。