如何调整和更改按钮中图标的颜色?

时间:2018-07-02 12:09:29

标签: android android-button android-icons

我正在android按钮中使用 android:drawableLeft =“ @ mipmap / share_icon” 显示图标。我想更改图标的颜色和大小。下面是我的代码

<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 :(得分:0)

在mipmap中打开share_icon的xml文件,然后更改颜色并从此处调整大小。

答案 1 :(得分:0)

  

注意:mipmap文件夹仅用于放置您的应用/启动器图标(显示在主屏幕上)。任何其他可动用资产   您所使用的应该像以前一样放在相关的可绘制文件夹中。

执行以下步骤:

  

第1步

     
    

将资源包装到可绘制的可绘制对象中,该可绘制对象类似于以下内容:

 <?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
  • 如果您正在使用活动,请使用getApplicationContext();如果您正在使用片段,请使用getContext()
  • 将所需的颜色添加到colors.xml文件