前言:

最近在网上看到一些大牛的博客里面有提到android:tint这个属性,说实话做Android开发这么多年,自己比较菜,从来没有去深入了解过android:tint这个属性,当然也就没有使用过了,但是看了大牛的讲解之后感觉这个属性很实用,能够在平时的项目中用到。能给公司的设计节省一些设计工作,并且也能提高图片资源在代码中的复用性,从而减少apk的大小。

 

进入正题:

如何使用android:tint这个属性呢?下面咱们就通过代码来一起看看这个android:tint这个属性都有哪些作用,能给我们的开发工作带来什么便利。

首先创建一个Activity

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ImageView iv_image=findViewById(R.id.iv_image);    }}

其次,书写Activity对应的布局文件:

<?xml version="1.0" encoding="utf-8"?>    

在布局文件中有一个ImageView控件,并且给这个控件添加了一个src属性,这个属性指向了一个icon_course_show.png的图片:

关于android:tint属性的使用_第1张图片

关于android:tint属性的使用_第2张图片

我们看到这张图片的原图是黑色的线条,再给这个ImageView加一个android:tint属性:

关于android:tint属性的使用_第3张图片

在右侧的preview栏中我们可以看到,图片显示出了android:tint属性所设置的颜色。项目运行一下:

关于android:tint属性的使用_第4张图片

这个是在布局文件里面对android:tint属性进行了使用,那么是否可以在代码中使用这个属性了呢?

关于android:tint属性的使用_第5张图片

我们在代码里,调用ImageView的setImageTintList方法也可以对原图进行颜色的改变。只不过目前这个方法只支持到Android5.0以后,对于Android5.0以前的兼容,大家可以参考大神的这篇文章:https://www.jianshu.com/p/6c288ff88ecf

运行之后,我们发现图片的颜色发生了变化:

关于android:tint属性的使用_第6张图片

好了,android:tint这个属性大家已经有所了解了。

同理,ImageVIew还有一个属性:android:backgroundTint,是针对设置了背景图的控件,不引入指定颜色的图片,而是直接在原图上通过设置backgroundTint属性来达到想要的效果。也可在代码中通过调用setBackgroundTintList来使用该属性。这里就不做过多的讲解了,很简单,大家可以动手去写代码试试。

总结:

这两个属性不但使用简单,而且解决了平时我们开发过程中,遇到的对于同一张图片,需要使用不同颜色的情况。通过使用这两个属性,可以增加图片资源的复用性,从而减少apk的大小。

 

更多相关文章

  1. Eclipse与Android源码中ProGuard工具的使用(代码混淆)
  2. Android之等比例显示图片
  3. Anroid-vlc开源播放器代码编译及简单调用手把手
  4. Android中9patch图片格式(xx.9.png)介绍与制作详解
  5. 浅谈android代码保护技术_ 加固
  6. [Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添
  7. Android中自定义SeekBar的背景颜色,进度条颜色,以及滑块的图片
  8. Android本地缓存和远程图片获取的实现
  9. 《第一行代码Android》学习总结第七章 运行时权限

随机推荐

  1. 1. 写一个登录表单,要求有邮箱,密码,登录
  2. 如何通过Apache在本地配置多个虚拟主机
  3. 基于php伪静态的实现方法解析
  4. PHP Ajax跨域问题解决方案代码实例
  5. 淘宝首页商品列表块
  6. PHP+Redis事务解决高并发下商品超卖问题(
  7. PHP中->和=>的含义及使用示例解析
  8. 移动端布局基本思路,三种视口、手机页面3
  9. Fetch API的使用,npm的常用操作,node模块
  10. 简单实例:登录表单、后台架构