android: marginable margin и / или дополнение

Можно ли задать поле или дополнение для изображения, которое мы добавили с помощью android:drawableLeft ?

Как отметил cephus, android:drawablePadding будет только принудительно дополнять текст и вытягиваемый, если кнопка достаточно мала.

При размещении больших кнопок вы можете использовать android:drawablePadding в сочетании с android:paddingLeft и android:paddingRight чтобы заставить текст и выталкивать внутрь к центру кнопки. Регулируя левую и правую прокладку отдельно, вы можете внести очень подробные настройки в макет.

Вот пример кнопки, которая использует отступы, чтобы сжать текст и значок ближе друг к другу, чем они были бы по умолчанию:

  

TextView имеет свойство android: drawablePadding, которое должно делать трюк:

андроид: drawablePadding

Прокладка между чертежами и текстом.

Должно быть значение измерения, которое является числом с плавающей запятой, добавленным с помощью блока, такого как «14.5sp». Доступными единицами являются: px (пиксели), dp (независимые от плотности пиксели), sp (масштабированные пиксели на основе предпочтительного размера шрифта), в дюймах, мм (миллиметры).

Это также может быть ссылкой на ресурс (в форме «@ [package:] type: name») или атрибут темы (в форме «? [Package:] [type:] name»), содержащий значение этого типа ,

Это соответствует символу ресурса глобального атрибута drawablePadding.

android:drawablePadding создаст только пробел между текстом и выталкиваемым, если кнопка достаточно мала, чтобы сжать 2 вместе. Если ваша кнопка более широкая, чем объединенная ширина (для drawableLeft / drawableRight) или высота (для drawableTop / drawableBottom), то drawablePadding ничего не делает.

Я тоже борюсь с этим сейчас. Мои кнопки довольно широкие, и значок висит на левом краю кнопки, а текст центрируется посередине. Мой единственный способ обойти это сейчас – это испечь на подиуме на рисовании, добавив пустые пиксели в левый край canvasа с помощью Photoshop. Не идеально, и не рекомендуется. Но на данный момент это решение для остановки работы, за исключением восстановления TextView / Button.

android:drawablePadding – это самый простой способ дать отступы для рисования значка, но вы не можете дать конкретную боковую набивку, например paddingRight или paddingLeft возможностью рисования значка. Чтобы достичь этого, вам нужно в него копать. И если вы примените paddingLeft или paddingRight к Edittext тогда он поместит Edittext на весь Edittext вместе с ярлыком.

Сделайте свой ресурс draw.xml

          

Да. используйте drawablePadding следующим образом,

  

определите форму для вашего edittext и дайте ему дополнение. Например

        1        1        1        

Прокладка, определенная в этой форме, поможет придать отступы для drawableleft или right ———————- Применить эту форму в EditView

   

использование этой определенной формы в качестве фона даст вашему EditText некоторый стиль плюс margin для drawableLeft.

Вместо Button используйте LinearLayout с ImageView и TextView внутри. В дочерних элементах, таких как ImageView и TextView, используйте android: duplicateParentState = “true”.

Вы можете использовать отступы для кнопки, и вы можете играть с drawablePadding

   

вы можете использовать конкретное дополнение, где вы можете нарисовать его с помощью android: paddingLeft = “10dp” или android: paddingBottom = “10dp” или android: paddingRight = “10dp” или android: paddingTop = “10dp”

Вы должны рассмотреть использование списка слоев

Создайте файл с рисунком, как этот, назовите его как ic_calendar.xml

            

В файле макета,

  

Вы можете использовать android:drawableLeft="@drawable/your_icon" чтобы установить drawable, который будет показан слева. Чтобы установить android:paddingRight для android:paddingRight вы должны использовать android:paddingLeft или android:paddingRight чтобы установить соответственно левое / правое дополнение.

 android:paddingRight="10dp" android:paddingLeft="20dp" android:drawableRight="@drawable/ic_app_manager" 

Я тоже отправлю свой ответ на ринг. Если вы хотите сделать это программно, вы можете сделать следующее.

 final Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.somedrawable); final boolean isLTR = ViewCompat.LAYOUT_DIRECTION_LTR == ViewCompat.getLayoutDirection(this); final int iconInsetPadding = getResources().getDimensionPixelSize(R.dimen.icon_padding); final Drawable insetDrawable = new InsetDrawable(drawable, isLTR ? 0 : iconInsetPadding, 0, isLTR ? iconInsetPadding : 0, 0); 

Это добавит отступы до конца вытягиваемого, где конец будет означать левый / правый в зависимости от того, находится ли телефон в LTR или RTL.

  

note: layout_width должен быть wrap_content и использовать paddingLeft paddingRight drawablePadding для контроля пробела. Если вы укажете значение layout_width, у вас будет разрыв между значком и текстом, я думаю, что однажды дайте layout_width значение, заданное для заполнения.

Если размер извлекаемой resouce фиксирован, вы можете сделать так:

  

Ключевым моментом здесь является то, что:

  android:drawableRight="@drawable/ic_clear_black_24dp" android:paddingRight="10dp" android:paddingLeft="34dp" 

То есть размер ресурса drawable плюс paddingRight является paddingLeft.

Вы можете увидеть результат в этом примере

 textView.setCompoundDrawablesWithIntrinsicBounds(AppCompatResources.getDrawable(this,drawable),null,null,null); addressTitleView.setCompoundDrawablePadding(); 

Пытается использовать отрицательное дополнение

Подобно:

 android:paddingLeft="-8dp" 
  • Проверить навигационную панель
  • Могу ли я установить «android: layout_below» во время выполнения программно?
  • пользовательский диалог с кнопкой закрытия
  • Почему он неодобрительно использует пустой макет в Swing?
  • RecyclerView: обнаружена несогласованность. Недопустимая позиция позиции
  • Android. Мне нужны некоторые пояснения fragmentов к действиям и представлениям.
  • Как установить жесткий предел для JComponent, когда setMaximumSize () и setPrefferedSize () не работают?
  • Как заставить RelativeLayout работать с объединением и включать?
  • Scrollview может содержать только одного прямого дочернего
  • Как изменить цвет по умолчанию диалогового windows DatePicker и TimePicker в Android?
  • Android SlidingTabLayout с иконками
  • Interesting Posts

    Как атомно удалять ключи, соответствующие шаблону, используя Redis

    Почему я должен использовать sudo для проверки подлинности открытого ключа ssh?

    Разрешить сетевой трафик только для определенных программ в Windows 7

    Я хочу преобразовать std :: string в const wchar_t *

    Аутентификация с помощью двух разных таблиц

    Как очистить вывод функции печати?

    Как определить пользовательский разделитель для Spark RDD с одинаковым размером раздела, где каждый раздел имеет одинаковое количество элементов?

    Предотвратить показ веб-страницы «веб-страница недоступна»

    Как изменить имя пакета приложения Android при сборке с Gradle?

    Как вы можете разрешить mutt шифровать письма в папке отправленной почты?

    Обработать DBNull в C #

    Контроль масштабирования и уличный обзор не отображаются на моей карте Google?

    Новая ошибка библиотеки Android Design с помощью AppBarLayout и панели инструментов

    Просмотр PDF в формах Windows с использованием C #

    PSU не проблема, это материнская плата?

    Давайте будем гением компьютера.