我知道其他地方已经提到了这类问题。但我不明白为什么我在以下具体情况下遇到问题。这是一个非常简单的布局:
<RelativeLayout
android:id="@+id/headerLayout"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#D0D0D0"
android:orientation="horizontal"
>
<ImageView
android:id="@+id/appImageView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignBottom="@+id/appNameTextView"
android:layout_alignTop="@+id/appNameTextView"
android:scaleType="centerInside"
android:src="@drawable/common_ic_googleplayservices"
android:background="#FF0000"
/>
<TextView
android:id="@+id/appNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/appImageView"
android:text="Here is some text"
android:textColor="#000000"
/>
</RelativeLayout>
结果如下:
common_ic_googleplayservices是一个缩小的方形图像。为什么我有填充(见红色区域)=&gt;我的形象不再是正方形。
如何解决问题? (请在给出答案之前快速测试:))
谢谢!!!
答案 0 :(得分:1)
试试这个,
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:id="@+id/iv"
android:layout_width="30dp"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_alignTop="@+id/tv"
android:layout_alignBottom="@+id/tv"
android:src="@drawable/common_ic_googleplayservices" />
<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/iv"
android:gravity="center_vertical"
android:text="TextView"
android:textSize="30dp"
/>
</RelativeLayout>
答案 1 :(得分:0)
使用此
android:scaleType="fitXY"
android:adjustViewBounds="true"
答案 2 :(得分:0)
使用RelativeLayout
或任何其他默认布局无法直接执行您要执行的操作,因此您需要PercentRelativeLayout
。但我建议不要为此类任务包含任何其他依赖项。
步骤1:让您的用户界面如下
<RelativeLayout
android:id="@+id/headerLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#D0D0D0" >
<ImageView
android:id="@+id/appImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:background="#FF0000"
android:src="@drawable/common_ic_googleplayservices" />
<TextView
android:id="@+id/appNameTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/appImageView"
android:paddingStart="10dp"
android:text="Here is some text"
android:layout_centerVertical="true"
android:textColor="#000000" />
</RelativeLayout>
步骤2:在JAVA代码中进行以下更改。
final ImageView imageView = (ImageView) findViewById(R.id.image_view);
imageView.post(new Runnable() {
@Override
public void run() {
RelativeLayout.LayoutParams layoutParams = (RelativeLayout.LayoutParams) imageView.getLayoutParams();
layoutParams.width = layoutParams.height;
imageView.setLayoutParams(layoutParams);
}
});