如何在xml

时间:2019-05-14 04:28:47

标签: android android-imageview android-xml android-bitmap

我的xml中有一个ImageView,如下所示:

<ImageView
    android:id="@+id/ivMessage"
    android:layout_width="@dimen/two_hundred_dp"
    android:layout_height="@dimen/one_sixty_dp"
    android:layout_alignParentRight="true"
    android:layout_margin="@dimen/ten_dp"
    android:background="@drawable/rounded_rectangle_white"
    android:scaleType="fitXY"
    android:padding="@dimen/ten_dp"
    tools:src="@drawable/logo" />

但是我从服务器获取的照片可以处于纵向和横向模式,我只想在发生这种情况时交换此高度和宽度。我试图将这些dp编程转换为dp,但这不起作用,并且dp更改了。有什么我想念的简单方法吗?

2 个答案:

答案 0 :(得分:1)

由于您说的是来自服务器的图像可以是纵向图像,也可以是横向图像,因此您可以通过编程方式滑动尺寸。

第1步。确定图像是横向还是纵向

boolean landscape = false;

if(image.getHeight()>image.getWidth()){
//image is in portrait
landscape = false;
}else{
//image is in landscape
landscape = true;
}

第2步。相应地更改高度和宽度

if(landscape){
imageView.setWidth(200);
imageView.setHeight(160);
}
else{
imageView.setWidth(160);
imageView.setHeight(200);
}

答案 1 :(得分:0)

使用android:adjustViewBounds和maxHeight或minHeight属性,如下所示:

<ImageView
                android:id="@+id/ivMessage"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:maxWidth="@dimen/two_hundred_dp"
                android:maxHeight="@dimen/one_sixty_dp"
                android:adjustViewBounds="true"
                android:layout_margin="@dimen/ten_dp"
                android:background="@drawable/rounded_rectangle_white"
                android:scaleType="fitXY"
                android:padding="@dimen/ten_dp"
                tools:src="@drawable/logo" />