我在TextView
布局中有ImageButton
和xml
。 ImageButton
位于TextView
右侧,我希望群组在屏幕上水平居中。我使用RelativeLayout
。
我该怎么办?
答案 0 :(得分:2)
我假设您正在开发一个Android应用程序......如果是这样,可以使用此代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:orientation="horizontal">
<TextView
android:id="@+id/headerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world"
/>
<ImageButton
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
</LinearLayout>
</RelativeLayout>
android:layout_centerInParent="true"
会将项目放在RelativeLayout
父级的中间
android:layout_centerHorizontal="true"
只会水平居中项目。你可以删除你不需要的那个。
答案 1 :(得分:1)
一种优化方法,它不使用不必要的布局嵌套,并通过将图像合并到TextView中来减少视图计数:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="match_parent"
android:layout_width="match_parent"
>
<TextView
android:id="@+id/headerText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_centerHorizontal="true"
android:drawableRight="@drawable/ic_launcher"
android:text="@string/hello_world"
/>
</RelativeLayout>
秘密是使用compund drawable android:drawableRight="@drawable/ic_launcher"
要以编程方式更改它,请使用setCompoundDrawablesWithIntrinsicBounds()