#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. Отметьте ответ, если все в порядке и правильно. И спасибо