android代码实现tint,代码View,Model层设计的思考

android代码实现tint,代码View,Model层设计的思考

使用代码实现tint

  • 使用业务场景:点赞功能的已点赞状态,设计师那块还没有给图片,只能先用tint凑合了
imageView.setColorFilter(Color.argb(255, 255, 255, 255));

// 我使用的是Color.argb(255, 248, 185, 56);
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3
  • 有关知识点:255, 255, 255, 255(FFFFFFF), 就是完全不透明的纯白
  • 十六进制中前两位代表着透明度。即00-FF (完全透明-完全不透明)

setTag在onClickListener时的妙用

viewHolder.ivLike.setTag(viewHolder);
viewHolder.ivLike.setOnClickListener(new LikeClickListener(context, beeMessage));

...

@Override
public void onClick(View v) {
            ImageView ivLike = (ImageView) v;
            MessageViewHolder viewHolder = (MessageViewHolder) ivLike.getTag();
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 这样写可以避免把为viewholder加入final修饰符,使viewholder的复用收到限制
  • 充分利用了setTag方法,利用onClick传入的view对象

代码View,Model层设计的几点想法

  • 遵循MVC原则,Model层只提供原始的数据,不要改变类型,不要在Model层进行简化,加工
  • 把简化加工的工作交给Util工具类来作
  • 我以前在model中将int转换为String类型以方便在adapter中settext中不使用util,但后来发现这样虽然节省了编写util的时间,但是以后会出现难以预料的问题
  • 比如我出现的问题就是数据频繁在string与int中转换,最后数据居然改变了
  • 所以,原始的数据不应该在view层变动,model层只提供数据,util负责转换数据,view只负责显示数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安果移不动

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值