安卓PNG图片着色以及透明度设置

【安卓PNG图片着色以及透明度设置】1.结果展示(selector):
安卓PNG图片着色以及透明度设置
文章图片

注意:PNG图片着色要选择纯色图片,否则图片会严重失真,如下图
原图:
安卓PNG图片着色以及透明度设置
文章图片


结果图:
安卓PNG图片着色以及透明度设置
文章图片


2.透明度设置:

private void setBg(ImageButton imageButton) { //0~255透明度值 imageButton.getBackground().setAlpha(255); }

设置成255:
安卓PNG图片着色以及透明度设置
文章图片


设置成0
安卓PNG图片着色以及透明度设置
文章图片


3.源代码
项目结构:
安卓PNG图片着色以及透明度设置
文章图片


MainActivity
public class MainActivity extends AppCompatActivity {@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //使用图片ic_launcher着色,得不到想要的效果。 ImageButton imageButton = findViewById(R.id.image); //设置透明度 setBg(imageButton); Drawable drawable = imageButton.getDrawable(); //方式一:启动就更改颜色,也可以通过事件 //imageButton.setImageDrawable(tintDrawable(drawable, ColorStateList.valueOf(Color.RED))); //方式二:selector来改变颜色,注意btn_color.xml必须在color文件夹下 imageButton.setImageDrawable(tintDrawable(drawable, getResources().getColorStateList(R.color.btn_color))); } //设置透明度 private void setBg(ImageButton imageButton) { //0~255透明度值 imageButton.getBackground().setAlpha(0); } //着色 public static Drawable tintDrawable(Drawable drawable, ColorStateList colors) { final Drawable wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTintList(wrappedDrawable, colors); return wrappedDrawable; }}

btn_color.xml

activity_main.xml


    推荐阅读