фон Android studio за TextView

#android-studio

Вопрос:

Я пытаюсь достичь чего-то подобного в Android Studio:

введите описание изображения здесь

Я не хочу, чтобы форма фона была размером с TextView, я хочу, чтобы она была вдвое меньше, как на изображении выше. Это то, что я пытался сделать:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:bottom="30dp">
        <shape android:shape="rectangle" >
            <solid android:color="#f3f3f3" />
        </shape>
    </item>

    <item android:top="20dp">
        <shape android:shape="rectangle" >
            <solid android:color="#FFC107" />
        </shape>
    </item>
</layer-list>
 

и это выглядит так:

введите описание изображения здесь

не совсем то, чего я хотел. как я могу сделать это, как на изображении выше?

Ответ №1:

Попробуйте это:

определите в res/drawable новом файле под названием double_color.xml :

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@ id/shape_rectangle">
        <shape android:shape="rectangle" >
            <solid android:color="@color/green" />
        </shape>
    </item>
    <item android:top="-10dp" android:right="-10dp" android:left="-10dp">
        <shape>
            <solid android:color="@android:color/transparent" />
            <stroke
                android:width="10dp"
                android:color="@android:color/white"/>
        </shape>
    </item>
</layer-list>
 

Чем определить новый стиль в res/values качестве:

 <style name="TexViewStyle" parent="TextAppearance.AppCompat">
    <item name="android:background">@drawable/double_color</item>
</style>
 

И последнее, добавьте стиль в свой текстовый вид:

 <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Full name"
    style="@style/TexViewStyle"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
 

Будет так:

введите описание изображения здесь

Комментарии:

1. Здорово. Я попытался добавить только xml-файл, и он работает без добавления стиля, что бы добавил стиль в этом случае? также есть ли способ сделать ширину фона больше, чем сам текст?

2. Стиль-это просто способ очистить код и повторно использовать его в коде. Поэтому, чтобы сделать ширину фона больше размера текста, вы можете использовать android:paddingEnd=»10dp» android:paddingStart=»10dp»

3. Отметьте ответ, если все в порядке и правильно. И спасибо