如何在TextView的背景

时间:2016-09-06 08:25:57

标签: android listview textview

我开发了一个包含很多项目的应用程序列表视图。在每个项目中,我都有背景的textview。如何将文本移动到textview的中心?

我的商品代码:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="75dp"
    android:layout_marginTop="10dp">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/lesson_name"
        android:id="@+id/tv_lesson"
        android:layout_gravity="center_horizontal|top"
        android:textAlignment="center"
        android:textStyle="normal|bold"
        android:textSize="20sp"
        tools:targetApi="jelly_bean_mr1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Время"
        android:id="@+id/tv_time"
        android:layout_gravity="center"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="10dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/teacher_name"
        android:id="@+id/tv_teacher"
        android:layout_gravity="center_horizontal|bottom"
        android:textStyle="italic" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Кабинет"
        android:id="@+id/tv_cab"
        android:layout_gravity="center_horizontal|bottom"
        android:layout_marginTop="4dp"
        android:layout_marginBottom="17dp" />

    <TextView
        android:layout_width="45dp"
        android:layout_height="45dp"
        **android:id="@+id/tv_number"**
        android:layout_gravity="center_vertical"
        android:background="@drawable/oval"
        android:textIsSelectable="false"
        android:textStyle="normal|bold"
        android:textSize="40sp"
        android:layout_marginLeft="10dp"
        android:text="1"
        android:textColor="#ffffff"
        tools:targetApi="jelly_bean_mr1"
        android:textAlignment="inherit" />
</FrameLayout>

我的文字:

my textview

有什么建议吗?

P.S我已经尝试了android gravity = center,我的textview移动到列表项的中心

6 个答案:

答案 0 :(得分:6)

将以下属性添加到TextView

android:gravity="center"

应该是这样的:

<TextView
    android:layout_width="45dp"
    android:layout_height="45dp"
    android:layout_gravity="center_vertical"
    android:gravity="center"
    android:layout_marginStart="10dp"
    android:layout_marginLeft="10dp"
    android:background="@drawable/oval"
    android:textIsSelectable="false"
    android:textStyle="normal|bold"
    android:textSize="40sp"
    android:text="1"
    android:textColor="#000000"/>

答案 1 :(得分:1)

  

更改您的Text View

     

android:layout_gravity 属性将移动您的完整 Text View。并且android:gravity 只会移动 Text View 中的内容,这是他们之间的主要区别

<TextView
        android:id="@+id/tv_number"
        android:layout_width="45dp"
        android:layout_height="45dp"
        android:layout_gravity="center_vertical"
        android:gravity="center"
        android:layout_marginLeft="10dp"
        android:background="#000000"
        android:text="2222"
        android:textAlignment="inherit"
        android:textColor="#ffffff"
        android:textIsSelectable="false"
        android:textSize="40sp"
        android:textStyle="normal|bold"
        tools:targetApi="jelly_bean_mr1" />

enter image description here

答案 2 :(得分:0)

基本上这是因为默认的字体填充,要删除默认填充,您应该在TextView中的布局xml中添加以下代码: 机器人:includeFontPadding =&#34;假&#34; 例如:

 <TextView
            android:id="@+id/tv_number"
            android:layout_width="45dp"
            android:layout_height="45dp"
            android:layout_gravity="center_vertical"
            android:gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:background="#000000"
            android:text="2222"
            android:textAlignment="inherit"
            android:textColor="#ffffff"
            android:textIsSelectable="false"
            android:textSize="40sp"
            android:textStyle="normal|bold"
            android:includeFontPadding="false"
            tools:targetApi="jelly_bean_mr1" />

答案 3 :(得分:0)

将TextView的“gravity”标记更改为“center”

答案 4 :(得分:0)

使用以下属性:

 android:gravity="center"

答案 5 :(得分:0)

尝试这种方式,为背景创建一个xml

的test.xml

 <?xml version="1.0" encoding="utf-8"?>
    <selector
        xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape>
                <solid android:color="#f2f" />

                <size
                    android:height="150dp"
                    android:width="150dp" />

            </shape>
        </item>
    </selector>

activity_main.xml中

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="3"
        android:gravity="center"
        android:background="@drawable/test"
        android:textSize="15dp"
        android:textColor="#ffffff"
        />

</LinearLayout>

<强>输出

enter image description here