我有一个可滚动视图,其中我以编程方式插入了各种视图。 有些视图是文本字段,有些是图像。
我插入的大多数图像是水平图像,但一些图像是垂直图像。对于垂直图像,我想以编程方式修改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);
}
但这不起作用。谁能告诉我原因和解决方案吗?
答案 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));
}