http://blog.csdn.net/ywtcy/article/details/7878289
这段时间做项目,产品需求,进度条要做一个荧光效果,类似于Android4.0 浏览器中进度条那种样子。刚开始,百思不得其姐啊,还以为是用sharp文件或者canvas直接画出来的。后来一怒之下,把系统浏览器的apk包给解开了,坑爹的是,那个荧光效果的进度条居然是用的一张.9的图片,恍然大悟啊,不过,谷哥还是强大了一下,他的进度条用的并不是ProgressBar,而是重写的ImageView,当然,这个就不在今天的讨论范围了,呵呵,感兴趣的同学可以去看一下系统浏览器的源码。
这是Android 4.0中浏览器加载的效果,那个进度条,很惹眼的说~~
而真相居然是一张制作巧妙的.9图片:progress.9.png(这里不得不赞一下Android中的.9图片(Nine-patch),真的很方便)
当然使用起来就容易了,看代码:
/res/layout/activity_main.xml
- <ProgressBar
- android:id="@+id/pb"
- style="?android:attr/progressBarStyleHorizontal"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_below="@id/tv"
- android:progressDrawable="@drawable/progress_drawable" />
- <?xml version="1.0" encoding="utf-8"?>
- <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
- <item android:id="@android:id/progress">
- <clip android:drawable="@drawable/progress" />
- </item>
- </layer-list>
不过,实际体验中貌似有点不太完美,但理论上应该是这样的,呵呵,如果有错误之处,还望各位看官批评指正!
还有一个问题就是,这个进度条的更新感觉是一跳一跳的,不是很平滑,不知道能否加个动画效果让进度条的更新更加平滑一点,有类似经验的同学还望支个招啊,多谢了!