android代码实现tint,代码View,Model层设计的思考
发布日期:2021-05-07 19:00:42 浏览次数:23 分类:精选文章

本文共 1045 字,大约阅读时间需要 3 分钟。

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));...@Overridepublic 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只负责显示数据。
上一篇:alt+enter添加到自动清单文件
下一篇:Android UI之最优ListView写法

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年03月29日 09时56分30秒