Жесткая форма не отображается при использовании в сочетании с атрибутом android: drawableBottom.

Файл XML, сохраненный в res / drawable / gradient_box.xml:

<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp" /> </shape> 

(Вышеуказанное определение формы взято из руководства разработчика Android. В нем нет ошибок.).

Попробуем использовать его вместе с TextView:

 <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Text with some crazy rectangle shape below it." android:drawableBottom="@drawable/gradient_box"/> 

TextView отображается так, как будто атрибута drawableBottom не было! Однако настройка формы в фоновом режиме просто прекрасна:

 <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Text with crazy background" android:background="@drawable/gradient_box"/> 

Установка фактического изображения (например, * .png) на android: drawableBottom также отлично работает.

Есть идеи?

    Решила! Проблема состоит в том, что форма не обязательно имеет внутренние границы. То есть, получаемый чертеж не знает, как нарисовать себя!

    Чтобы решить эту проблему, просто укажите размер формы, например:

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF" android:angle="45"/> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="8dp" /> <size android:width="xxdp" android:height="xxdp"/> </shape> 

    Когда форма была указана в качестве фона, предназначенного для TextView, его размеры, как известно, были такими же, как размеры TextView. При указании фигуры вправо или над TextView размеры фигуры не могут быть определены автоматически.

    Если вы используете ImageView для размещения формы линии как части атрибута «android: src», вы также столкнетесь с той же проблемой, если не указать ширину и высоту как часть формы xml. Одним из способов является размещение формы линии как части атрибута «андроид: фон» ImageView. Таким образом, вы можете использовать атрибуты размера ImageView для формы линии, чтобы «показать».