Android ImageView通过代码更改maxHeight属性

时间:2018-11-22 23:39:42

标签: android imageview

我有一个可滚动视图,其中我以编程方式插入了各种视图。 有些视图是文本字段,有些是图像。

我插入的大多数图像是水平图像,但一些图像是垂直图像。对于垂直图像,我想以编程方式修改ImageView的maxHeight属性。因此,我进行了近似检查if(height>(width * 1.3))

这是我的Imageview xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:background="@null"
android:maxHeight="200dp"
android:scaleType="fitCenter" />

这是我的代码:

if (h > (1.3 * w)) {
    imageView.setMaxHeight(500);
}

但这不起作用。谁能告诉我原因和解决方案吗?

1 个答案:

答案 0 :(得分:0)

由于您的值500是像素值。因此,我认为您需要将500转换为相应的dp值。尝试使用此:

    private int dpToPx(int dp, Activity activity) {
        Resources r = activity.getResources();
        return Math.round(TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, r.getDisplayMetrics()));
    }

并将您的代码更改为此:

if (h > (1.3 * w)) {
    imageView.setMaxHeight(dpToPx(500, this));
}