Android ProgressBar 进度条荧光效果

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

[html] view plaincopy
  1. <ProgressBar  
  2.        android:id="@+id/pb"  
  3.        style="?android:attr/progressBarStyleHorizontal"  
  4.        android:layout_width="fill_parent"  
  5.        android:layout_height="wrap_content"  
  6.        android:layout_below="@id/tv"  
  7.        android:progressDrawable="@drawable/progress_drawable" />  
/res/drawable/progress_drawable.xml
[html] view plaincopy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >  
  3.   
  4.     <item android:id="@android:id/progress">  
  5.         <clip android:drawable="@drawable/progress" />  
  6.     </item>  
  7.   
  8. </layer-list>  
最后效果是这样的

不过,实际体验中貌似有点不太完美,但理论上应该是这样的,呵呵,如果有错误之处,还望各位看官批评指正!

还有一个问题就是,这个进度条的更新感觉是一跳一跳的,不是很平滑,不知道能否加个动画效果让进度条的更新更加平滑一点,有类似经验的同学还望支个招啊,多谢了!

posted @ 2015-03-13 19:45  若 ♂ 只如初见  阅读(1875)  评论(0编辑  收藏  举报