Как упоминалось выше, cephus android:drawablePadding
будет принудительно заполнять текст и рисование только в том случае, если кнопка достаточно мала.
При размещении кнопок большего размера вы можете использовать их android:drawablePadding
в сочетании с android:paddingLeft
и android:paddingRight
для принудительного ввода текста и рисования внутрь по направлению к центру кнопки. Регулируя левый и правый отступы по отдельности, вы можете сделать очень подробные настройки макета.
Вот пример кнопки, которая использует отступы для сближения текста и значка ближе, чем они были бы по умолчанию:
<Button android:text="@string/button_label"
android:id="@+id/buttonId"
android:layout_width="160dip"
android:layout_height="60dip"
android:layout_gravity="center"
android:textSize="13dip"
android:drawableLeft="@drawable/button_icon"
android:drawablePadding="2dip"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:gravity="center" />
passwordToggleDrawable
увеличению разрыва левого отступа, поскольку он не может указывать только конкретную цель для рисования слева.TextView имеет свойство android: drawablePadding, которое должно помочь:
источник
android:drawablePadding
создаст пробел между текстом и рисованием только в том случае, если кнопка достаточно мала, чтобы сложить 2 вместе. Если ваша кнопка шире, чем объединенная ширина (для drawableLeft / drawableRight) или высота (для drawableTop / drawableBottom), тогда drawablePadding ничего не делает.Я борюсь с этим и сейчас. Мои кнопки довольно широкие, значок висит на левом краю кнопки, а текст посередине. Мой единственный способ обойти это сейчас - запекать с полями для рисования, добавляя пустые пиксели к левому краю холста с помощью Photoshop. Не идеально, и не очень рекомендуется. Но это мое временное решение, если не считать перестройки TextView / Button.
источник
Да. используйте drawablePadding следующим образом,
источник
Сделайте свой drawable resources.xml
источник
android:drawablePadding
это самый простой способ добавить отступ для нарисованного значка, но вы не можете назначить конкретный односторонний отступ, например,paddingRight
илиpaddingLeft
для нарисованного значка. Чтобы добиться этого, вам нужно копаться в нем. И если вы подаете заявлениеpaddingLeft
илиpaddingRight
вEdittext
то место будет отступы ко всемуEdittext
вместе с растяжимым значком.источник
определите форму для вашего текста редактирования и дайте ему отступ. Например
Заполнение, определенное в этой форме, поможет придать отступу нарисованному левому или правому краю ---------------------- Примените эту форму в EditView
использование этой определенной формы в качестве фона придаст вашему EditText стиль и поле для drawableLeft.
источник
android: drawablePadding - это самый простой способ добавить отступ для нарисованного значка, но вы не можете задать конкретный односторонний отступ, например paddingRight или paddingLeft нарисованного значка. Чтобы добиться этого, вам нужно копаться в нем. И если вы примените paddingLeft или paddingRight к Edittext, тогда он поместит заполнение на весь Edittext вместе с нарисованным значком.
источник
примечание: layout_width должно быть wrap_content и использовать paddingLeft paddingRight drawablePadding для контроля зазора. Если вы укажете значение layout_width, в котором будет разрыв между значком и текстом, я думаю, что однажды передайте layout_width заданное значение, отступ будет измеряться.
источник
Я тоже брошу свой ответ на ринг. Если вы хотите сделать это программно, вы можете сделать следующее.
Это добавит заполнение к концу рисования, где конец будет означать влево / вправо в зависимости от того, находится ли телефон в LTR или RTL.
источник
Вместо
Button
использованияLinearLayout
сImageView
иTextView
внутри. В детских вещах любятImageView
иTextView
используютandroid:duplicateParentState="true"
.источник
Вы должны рассмотреть возможность использования layer-list
Создайте подобный файл для рисования, назовите его ic_calendar.xml
Под файлом макета,
источник
Вы можете использовать отступы для кнопки и играть с drawablePadding.
Вы можете использовать конкретный отступ, в зависимости от того, где вы хотите нарисовать, с помощью android: paddingLeft = "10dp" или android: paddingBottom = "10dp" или android: paddingRight = "10dp" или android: paddingTop = "10dp"
источник
Вы можете использовать
android:drawableLeft="@drawable/your_icon"
для отображения рисунка слева. Чтобы установить отступ для рисования, вы должны использоватьandroid:paddingLeft
или,android:paddingRight
чтобы установить отступ слева / справа соответственно.источник
Если размер нарисованного ресурса фиксирован, вы можете сделать это так:
Ключевым моментом здесь является то, что:
То есть размер рисуемого ресурса плюс paddingRight равен paddingLeft.
Вы можете увидеть результат в этом примере
источник
источник
просто переделать из:
в
источник
Пытается использовать отрицательный отступ
Подобно:
источник