Intereting Posts
Контейнер «Зависимости от Android» ссылается на не существующую библиотеку «facebook-android-sdk \ facebook \ bin \ com_facebook_android.jar» Как заменить фрагмент внутри ViewPager, используя PagerAdapter? Инструмент Android Systrace внутренне использует strace или ftrace? Патч ImageView 9 доступен с прокладками, которые не соблюдаются SSLHandshakeException: Исключение сертификата с использованием HttpURLConnetion с Android 4.2.2 Есть ли хорошая онлайн-среда для разработки Android? Я хочу установить ширину всплывающего окна во время выполнения в соответствии с размером заголовка в android Могу ли я использовать изображение в формате JPG вместо изображения PNG в качестве фона? Android .axml intellisense не работает с элементами управления библиотекой поддержки. Android sherlock setDisplayHomeAsUpEnabled не работает и как настроить пользовательскую цель? Каков правильный способ обработки подписки в RxJava / RxAndroid для жизненного цикла активности? В заголовке HTTP-агента пользователя Android, что означает «U»? Отключить кнопку при изменении текстовых полей Как я могу форматировать двойной с помощью привязки данных Android? Android: Как установить изображение ImageSwitcher по растровому изображению? SetImageBitmap не существует?

Как добавить дополнение к градиенту <shape> в Android?

У меня есть форма с градиентом, который я использую как разделитель между ListView . Я определил его следующим образом:

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#ccd0d3" android:centerColor="#b6babd" android:endColor="#ccd0d3" android:height="1px" android:angle="0" /> </shape> 

Я хотел бы добавить 6 пикселей отступов по обе стороны от градиента, чтобы он не простирался от края к краю экрана.

Однако независимо от того, где я помещаю android:left="6px" и android:right="6px" , он, похоже, не вступает в силу. Я могу поместить его в элемент <shape> элемент <gradient> или в отдельный дочерний элемент <padding> <shape> , и он ничего не меняет.

Как добавить прописку слева и справа от моего разделителя списка?

Solutions Collecting From Web of "Как добавить дополнение к градиенту <shape> в Android?"

Я думаю, вы могли бы объединить его так:

 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="6dp" android:right="6dp"> <shape android:shape="rectangle"> <gradient android:startColor="#ccd0d3" android:centerColor="#b6babd" android:endColor="#ccd0d3" android:height="1px" android:angle="0"/> </shape> </item> </layer-list> 

Другое решение с использованием вставки:

 <?xml version="1.0" encoding="UTF-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetLeft="6dp" android:insetRight="6dp" > <shape android:shape="rectangle"> <gradient android:startColor="#ccd0d3" android:centerColor="#b6babd" android:endColor="#ccd0d3" android:height="1px" android:angle="0" /> </shape> </inset> 

Одно из решений, похоже, состоит в том, чтобы «обернуть» мой drawable с помощью другого drawable, который указывает подходящее дополнение.

Например, list_divider.xml будет:

 <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:left="6dp" android:right="6dp" android:drawable="@drawable/list_divider_inner" /> </layer-list> 

И тогда list_divider_inner.xml будет оригинальным:

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#ccd0d3" android:centerColor="#b6babd" android:endColor="#ccd0d3" android:height="1px" android:angle="0" /> </shape> 

Это приводит к двум файлам, чтобы указать простой разделитель. Я не знаю, есть ли способ сделать это только с одним файлом.