Android 改变方向时按比例调整图像大小
我在一个活动中有一个片段,它由一个RelativeLayout、一个ImageView和一个TextView组成,具有以下布局:Android 改变方向时按比例调整图像大小,android,Android,我在一个活动中有一个片段,它由一个RelativeLayout、一个ImageView和一个TextView组成,具有以下布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txtLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/avaImage"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:text="Available"
android:textSize="26sp" />
<ImageView
android:id="@+id/avaImage"
android:layout_width="487dp"
android:layout_height="238dp"
android:layout_alignParentTop="true"
android:layout_marginTop="20dp"
android:layout_centerHorizontal="true"
android:scaleType="centerInside" />
</RelativeLayout>
我的问题是,如何缩小图像大小,使其也适合横向模式下的屏幕?图像应缩小到足以使文本显示在边界内?这就是我想要实现的目标
波特雷特:
景观:
请尝试使用此代码缩小图像。它设置了与中心相同的图像比例
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" >
<ImageView
android:id="@+id/avaImage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/txtLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Available" />
</LinearLayout>
你可以在imageview中安装android:scaleType=fitCenter,也可以删除你的固定宽度和高度。我在imageview中使用fitCenter进行了尝试,但没有任何帮助。如果我删除硬编码的值,我应该把什么作为宽度和高度?您总是可以通过重写OnConfiguration Changed方法来处理这种情况。@santalu我在OnConfiguration Changed上硬编码宽度和高度,但整个方法似乎对我不起作用。如果您能提供相关代码,将不胜感激。谢谢为什么线性布局?RelativeLayout不能做到这一点吗?@basics如果您在RelativeLayout中为您提供固定宽度和高度的图像视图,则它们不能以所有分辨率工作。此类型代码以所有分辨率工作,因此其使用线性布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin" >
<ImageView
android:id="@+id/avaImage"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:scaleType="fitCenter"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/txtLabel"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Available" />
</LinearLayout>