android代碼實作tint,代碼View,Model層設計的思考
使用代碼實作tint
- 使用業務場景:點贊功能的已點贊狀态,設計師那塊還沒有給圖檔,隻能先用tint湊合了
imageView.setColorFilter(Color.argb(, , , ));
// 我使用的是Color.argb(, , , );
- 有關知識點: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();
}
- 這樣寫可以避免把為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隻負責顯示資料。