Seekbar是一个拖动条控件,最简单的案例就是我们的调节音量,还有音频视频的播放,传统的Seekbar样式,如图
传统的实现太简单,不足以让我们到能装逼的地步。本来是打算实现滴滴出行滑动完成订单的效果,可惜找不到效果图,今天也就用淘宝的滑动验证来作为实例
1.1 实现分析
Seekbar:使用progressDrawable属性自定义Seekbar
拖动块:使用thumb属性更改,其实就是一张图片
文字:使用relativeLayout嵌套在一起
1.2 实现布局
<?xml version="1.0" enCoding="utf-8"?><relativeLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:padding="16dp"> <Seekbar androID:ID="@+ID/sb" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:max="100" androID:progress="0" androID:progressDrawable="@drawable/seekbar_bg" androID:thumb="@drawable/thumb" androID:thumbOffset="0dp" /> <TextVIEw androID:ID="@+ID/tv" androID:layout_wIDth="match_parent" androID:layout_height="wrap_content" androID:layout_centerInParent="true" androID:gravity="center" androID:text="请按住滑块,拖动到最右边" androID:textcolor="#888888" androID:textSize="14dp" /></relativeLayout>
其效果是
Seekbar属性介绍
androID:max:设置进度条最大的进度值
androID:progress:设置当前的进度值
androID:progressDrawable:设置进度条的Drawable样式
androID:thumb:设置进度条滑块
androID:thumbOffset:设置进度条滑块的偏移量
1.3 Seekbar样式
这里是AndroID:progressDrawable里面的seekbar_bg.xml
<?xml version="1.0" enCoding="UTF-8"?><@R_231_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID"> <!--seekbar背景--> <item androID:ID="@androID:ID/background"> <!--形状--> <shape androID:shape="rectangle"> <!--大小--> <size androID:height="29dp" /> <!--圆角--> <corners androID:radius="2dp" /> <!--背景--> <solID androID:color="#E7EAE9" /> <!--边框--> <stroke androID:wIDth="1dp" androID:color="#C3C5C4" /> </shape> </item> <!--seekbar的进度条--> <item androID:ID="@androID:ID/progress"> <clip> <shape> <corners androID:radius="2dp" /> <solID androID:color="#7AC23C" /> <stroke androID:wIDth="1dp" androID:color="#C3C5C4" /> </shape> </clip> </item></@R_231_3419@>
1.4 代码实现逻辑
代码也非常简单,seekbar提供了一个监听事件OnSeekbarchangelistener,在对应的回调中实现文字的出现和消失、文本内容的修改
public class MainActivity extends AppCompatActivity implements Seekbar.OnSeekbarchangelistener { private TextVIEw tv; private Seekbar seekbar; @OverrIDe protected voID onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVIEw(R.layout.activity_main); tv = (TextVIEw) findVIEwByID(R.ID.tv); seekbar = (Seekbar) findVIEwByID(R.ID.sb); seekbar.setonSeekbarchangelistener(this); } /** * seekbar进度变化时回调 * * @param seekbar * @param progress * @param fromUser */ @OverrIDe public voID onProgressChanged(Seekbar seekbar,int progress,boolean fromUser) { if (seekbar.getProgress() == seekbar.getMax()) { tv.setVisibility(VIEw.VISIBLE); tv.setTextcolor(color.WHITE); tv.setText("完成验证"); } else { tv.setVisibility(VIEw.INVISIBLE); } } /** * seekbar开始触摸时回调 * * @param seekbar */ @OverrIDe public voID onStartTrackingtouch(Seekbar seekbar) { } /** * seekbar停止触摸时回调 * * @param seekbar */ @OverrIDe public voID onStopTrackingtouch(Seekbar seekbar) { if (seekbar.getProgress() != seekbar.getMax()) { seekbar.setProgress(0); tv.setVisibility(VIEw.VISIBLE); tv.setTextcolor(color.GRAY); tv.setText("请按住滑块,拖动到最右边"); } }}
好了,今天的Seekbar的使用就到这里,如果对其他基础控件感兴趣的,可以关注我的博客,基础控件系列,欢迎提供大家IDea。
源码下载:http://xiazai.jb51.net/201611/yuanma/Androidseekbar(jb51.net).rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android控件SeekBar仿淘宝滑动验证效果全部内容,希望文章能够帮你解决Android控件SeekBar仿淘宝滑动验证效果所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)