[Android] PorterDuff使用实例-实现新浪微博图片上载效果

[Android] PorterDuff使用实例----实现新浪微博图片下载效果先上效果图,如demo_sinaweibo.gif由效果图,下

[Android] PorterDuff使用实例----实现新浪微博图片下载效果

先上效果图,如demo_sinaweibo.gif

[Android] PorterDuff使用实例-实现新浪微博图片上载效果

由效果图,下半部分是简单的效果叠加,上半部分是新浪微博加载图片显示进度的效果,显示进度的半透明区域只与根据背景图的非透明区域叠加,背景图的透明区域仍为透明。
为实现此要求,联想到APIDemos中的com.example.android.apis.graphics.Xfermodes,可以自定义组件在组件的绘制过程中设置PorterDuff.Mode即可实现。
另效果图中显示当下载进度超过50%时,重新设置了背景图。

本次自定义组件选择继承ImageView来实现,名为PorterDuffView。将ImageView新增一porterduffMode。在该模式下,将可显示图片加载进度;否则按ImageView原有规则显示图片。


1.PorterDuffView的XML编码

设置PorterDuffView的porterduffMode,可有两种方式,一为在xml中设置,一为在代码设置。

xml中设置的实现:
在/res/values下新建一"attrs.xml",内容如下: