Как изменить размер и изменить цвет иконки в кнопке? - PullRequest
0 голосов
/ 02 июля 2018

Я использую android: drawableLeft = "@ mipmap / share_icon" в кнопке Android, чтобы показать значок. Я хочу изменить цвет и размер иконки. Ниже мой код

<Button
        style="@android:style/Widget.Holo.Light.Button.Small"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_vertical|center_horizontal"
        android:layout_marginBottom="15dp"
        android:background="#66ccff"
        android:clickable="true"
        android:drawableLeft="@mipmap/share_icon"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:text="Send An Invite"
        android:textColor="@color/white_color"
        android:textSize="18sp"
        android:textStyle="normal"
        android:tint="@color/white_color"
        />

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Примечание: Папки mipmap предназначены только для размещения значков ваших приложений / средств запуска (которые отображаются на главном экране). Любые другие активы Используемые вами файлы должны быть помещены в соответствующие папки для рисования, как и прежде.

Выполните следующие действия:

Шаг № 1

Оберните ваш ресурс в drawable, который определяет ваш желаемый размер, подобный:

 <?xml version="1.0" encoding="utf-8"?>
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

      <item
         android:drawable="@drawable/{your icon}"
         android:width="@dimen/icon_size"
         android:height="@dimen/icon_size" />

 </layer-list >

Шаг № 2

Удалите тег android:drawableLeft из вашего Button

Шаг № 3

Добавьте этот код к вашему Activity / Fragment

int tintColor = ContextCompat.getColor(context,
android.R.color.{your button color});

Button button = (Button) findViewById(R.id.{your button id});

Drawable drawable = ContextCompat.getDrawable(context, R.drawable.{drawable that you made earlier});

drawable = DrawableCompat.wrap(drawable);
DrawableCompat.setTint(drawable.mutate(), tintColor);

drawable.setBounds( 0, 0, drawable.getIntrinsicWidth(), 
drawable.getIntrinsicHeight());

button.setCompoundDrawables(drawable, null, null, null);

Имейте в виду: ( Предполагая, что вы не знали )

  • Чтобы вышеприведенный код работал, вы должны добавить id к вашему Button.
  • Если вы используете Activity, используйте getApplicationContext(), а если вы используете Fragment, используйте getContext()
  • Добавьте нужный цвет в файл colors.xml
0 голосов
/ 02 июля 2018

Откройте XML-файл share_icon в mipmap, измените цвет и измените размер оттуда.

...