您的位置:首页 > 移动开发 > Android开发

MaterialProgressDrawable , 实现SwipeRefreshLayout的下拉效果的旋转动画效果

2016-09-23 13:39 651 查看
概述 

MaterialProgressDrawable,一个Material风格的圆形滚动条,样式比较百搭,在
android.support.v4.widget
包中,不过是私有的,但是,好东西怎么能埋没了呢,我们直接把它复制出来就可以用了,哇哈哈~~~(找不到就点我 -
-)

可以做什么?

MaterialProgressDrawable大概可以实现以下效果:
指示进度从0~100%(当然,数字是不自带的)
不停转圈圈 - -
官方已经实现的下拉刷新(SwipeRefreshLayout)

简单效果

Demo很简单,想看代码就点我



使用

MaterialProgressDrawable其实就是个Drawable,所以他需要一个载体,一般可以把它设置到一个ImageView上。
<code class="language-java hljs  has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">ImageView imageView = ……
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//创建</span>
MaterialProgressDrawable progress = = <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">new</span> MaterialProgressDrawable(context,imageView);
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//设置到imageView </span>
imageView.setImageDrawable(progress);</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>


还有很多属性可以设置,看下面的列表。

常用方法

返回值方法和描述
voidupdateSizes(int size)

设置大小,可以选LARGE、DEFAULT
voidshowArrow(boolean show)

设置是否显示箭头
voidsetArrowScale(float scale)

设置箭头缩放大小,0f~1f
voidsetStartEndTrim(float startAngle, float endAngle)

设置进度条的开始和结尾,也就是长度,范围0f~1f,比如
setStartEndTrim(0f,0.8f)
voidsetProgressRotation(float rotation)

设置旋转角度,0f~1f
voidsetBackgroundColor(int color)

设置背景颜色
voidsetColorSchemeColors(int… colors)

设置进度条的颜色,可以是多种颜色,转一圈换一个
voidsetAlpha(int alpha)

设置透明度,0-255,
注意:默认一开始透明度是0
voidstart()

开始转圈动画
voidstop()

终止进行中的动画,并且将进度条长度归零
intgetAlpha()

获取当前透明度
intgetIntrinsicHeight()

获取Drawable高度
intgetIntrinsicWidth()

获取Drawable宽度

转载自
http://blog.csdn.net/tyzlmjj/article/details/50557397 
原文出自:【M家杰的博客】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android