Android UI设计自动图像视图重新调整大小

Android UI设计自动图像视图重新调整大小,android,user-interface,imageview,android-imageview,ui-design,Android,User Interface,Imageview,Android Imageview,Ui Design,ImageView获取图像并包装内容,因此如果图像的尺寸像100x100,则ImageView具有相同的尺寸。我只想指定此图像视图的布局\u高度,以及当它与图像匹配以正确调整图像视图的布局\u宽度的大小时 以下是一个例子: 图像大小=100x100 图像视图的布局高度=200 ImageView的布局宽度应为200而不是100 这可能吗?您需要创建一个自定义的ImageView并覆盖onMeasure以使视图始终为方形 @Override protected void onMeasure(int

ImageView获取图像并包装内容,因此如果图像的尺寸像100x100,则ImageView具有相同的尺寸。我只想指定此图像视图的布局\u高度,以及当它与图像匹配以正确调整图像视图的布局\u宽度的大小时

以下是一个例子:

图像大小=100x100

图像视图布局高度=200

ImageView布局宽度应为200而不是100


这可能吗?

您需要创建一个自定义的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);
}

你把我的例子当作私人案件。您还可以使用大小为100x300的图像,如果布局宽度=200,则布局高度应为600-->图像视图200x600。我举了一个容易计算的整数的例子,但它可能更复杂。我希望你现在明白我的意思了。我的例子仍然是,如果你想精确控制视图的大小,你需要在测量时覆盖它。您使用什么来确定大小取决于您。在您的情况下,在向上或向下缩放图像视图时,听起来您试图保持图像的纵横比。如果是这种情况,那么您需要获取图像大小并相应地调整代码。