Android开源: StateProgressView - 物流进度
wgif7353
8年前
<p style="text-align:center"><img src="https://simg.open-open.com/show/77e6952fdc1313d5edbff6ce05b3f5c5.gif"></p> <p style="text-align:center">效果图</p> <h3><strong>实现流程</strong></h3> <ul> <li>绘制一个从左到由逐渐填充的圆环</li> <li>绘制一个从左到由逐渐变色的直线 ,可设置圆角</li> <li>继承FrameLayout,根据传入的数据(几个节点)结合设置的数据,确定共有几个圆环和直线,然后计算并设置这些子View的大小和位置,如果文字,计算文字位置和显示文字的TextView大小</li> <li>然后开始执行动画,每个节点的动画绘制完成都会有一个回调动作通知下一个节点执行动画</li> </ul> <h3><strong>How to use</strong></h3> <p>Gradle Dependency</p> <pre> <code class="language-java">compile 'com.lhz:StateProgressView:1.0.1'</code></pre> <h3><strong>Attributes</strong></h3> <p>Declare it inside your layout XML file like this:</p> <pre> <code class="language-java"><com.lhz.stateprogress.StateProgressView android:id="@+id/spv" android:layout_height="wrap_content" android:layout_width="match_parent" app:color_circle_fill="#d81e06" app:color_circle_stroke="#d81e06" app:line_height="8dp" app:is_line_radius="true" app:radius_circle_fill="12dp" app:radius_circle_stroke="16dp" app:state_height="48dp" app:color_text_normal="#bfbfbf" app:color_line_state="#d81e06" app:color_line_normal="#dbdbdb" /></code></pre> <h3><strong>Set value and Perform the animation</strong></h3> <pre> <code class="language-java">final StateProgressView spv= (StateProgressView) findViewById(R.id.spv); //下方带文字 设置节点集合 最后节点的index为4 直接执行动画 list是String 类型的 index要小于list的数量 spv.setItems(list, 4, 200); //下方带文字 设置节点集合 spv.setItems(list); //最后节点的index为2 每个节点动画时长为1000毫秒 spv.startAnim(2,1000); //下方不带文字 设置共有四个节点 最后节点的index为2 每个节点动画时长为1000毫秒 spv.setItems(4); spv.startAnim(2,1000);</code></pre> <p> </p> <p>来自:http://www.jianshu.com/p/28d7ffd9eda4</p> <p> </p>