如何将textview
对准图像的中心?请查看照片以方便理解:
我希望textview
“ Blade Runner 2049”与刀片流道图像的中心对齐
我已经尝试过center gravity
和padding,但是两者都无法正常工作。任何帮助都将不胜感激。谢谢
编辑::如果Google将任何人带到这里,这是该问题的旧xml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
app:itemBackground="@color/colorWhite"
app:itemIconTint="@drawable/selector"
app:itemTextColor="@drawable/selector"
app:menu="@menu/bottom_navigation_main" />
<EditText
android:id="@+id/editText"
android:layout_width="380dp"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dp"
android:ems="10"
android:hint="Search"
android:inputType="text" />
<ImageButton
android:id="@+id/imgBtnFrozen"
android:layout_width="180dp"
android:layout_height="210dp"
android:layout_alignEnd="@+id/editText"
android:layout_alignTop="@+id/imgBtnKin"
android:background="@drawable/frozen_poster"
android:scaleType="centerCrop" />
<ImageButton
android:id="@+id/imgBtnHotelT"
android:layout_width="180dp"
android:layout_height="210dp"
android:layout_alignEnd="@+id/editText"
android:layout_alignTop="@+id/imgBtnBladeRunner"
android:background="@drawable/hotel_transylvania_3_poster"
android:scaleType="centerCrop" />
<ImageButton
android:id="@+id/imgBtnBladeRunner"
android:layout_width="180dp"
android:layout_height="210dp"
android:layout_alignParentTop="true"
android:layout_alignStart="@+id/editText"
android:layout_marginTop="70dp"
android:background="@drawable/blade_runner_poster"
android:scaleType="centerCrop" />
<ImageButton
android:id="@+id/imgBtnKin"
android:layout_width="180dp"
android:layout_height="210dp"
android:layout_alignParentBottom="true"
android:layout_alignStart="@+id/editText"
android:layout_marginBottom="80dp"
android:background="@drawable/kin_poster"
android:scaleType="centerCrop" />
<TextView
android:id="@+id/txtBladeRunner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_below="@+id/imgBtnBladeRunner"
android:text="Blade Runner 2049 "
android:textColor="@color/colorBlack" />
</RelativeLayout>
答案 0 :(得分:2)
您应该使用RecyclerView / GridView获得该布局。对于RecyclerView / GridView中的每个项目,请尝试以下XML代码:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity">
<ImageView
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@drawable/poster" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Dunkirk"
android:textColor="@android:color/black" />
</LinearLayout>
这将导致这种布局(对于RecyclerView / GridView中的每个项目):
更多,如果标题很长,您可以使用它:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
tools:context=".MainActivity">
<!-- find a good ratio for the poster -->
<ImageView
android:layout_gravity="center"
android:layout_width="229dp"
android:layout_height="340dp"
android:src="@drawable/poster" />
<!-- adjust maxWidth according to your poster ratio -->
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:maxWidth="200dp"
android:text="Very long title that will need to be split."
android:textColor="@android:color/black" />
</LinearLayout>
这将导致以下结果:
答案 1 :(得分:0)
我认为它可以帮助您,但我看不到您的布局XML:
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
答案 2 :(得分:0)
尝试一下
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/thumbImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/ic_user_icon" /> // your image
<TextView
android:id="@+id/movieName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/thumbImage"
android:layout_centerHorizontal="true"
android:layout_marginTop="8dp"
android:text="Blade Runner 2049" />
</RelativeLayout>
答案 3 :(得分:0)
要获得输出,可以使用 RelativeLayout 。 以下是适用于您的情况的示例代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/image"
android:layout_margin="8dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/tsp"/>
<TextView
android:layout_below="@id/image"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_alignEnd="@id/image"
android:gravity="center_horizontal"
android:text="Blade Runner 2049" />
</RelativeLayout>
答案 4 :(得分:0)
在gridview内部设置
<LinearLayout
android:id="@+id/linearbot1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:gravity="center">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imgvw_mon1"
android:layout_width="29dp"
android:layout_height="26dp"
android:layout_marginLeft="20dp"
android:layout_marginRight="20dp"
android:layout_gravity="center"
app:srcCompat="@drawable/icon_mon1" />
<TextView
android:id="@+id/tv_mon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/imgvw_mon1"
android:layout_centerHorizontal="true"
android:text="sample"
android:textColor="#e6e5e5"
android:textSize="10sp" />
</RelativeLayout>
</LinearLayout>
PS:,您也可以使用本教程link
答案 5 :(得分:0)
对于那些想知道如何解决的人,我使用了@Krishna Sharma的答案和@Neeraj vishwakarma的答案,但是通过添加
对其进行了一些修改。android:layout_alignStart="@id/imgBtnFrozen"
到TextView
,这是因为如果我不这样做,TextView
只会将自身与屏幕的水平中心对齐(尽管它仍位于ImageButton
之下)>
感谢大家的回答,您的回答也很棒