Android之SeekBar的简单使用

Android之SeekBar的简单使用,第1张

概述Android之SeekBar一、简介SeekBar意思为拖动条,是ProgressBar的一个子类。在我们安卓的开发中也是应用非常的广泛。如音乐播放、音量条、播放进度条,等等。Android系统只提供了水平的,默认的样式,我们也可以根据自己需求自定义样式。二、常用属性和方法seekBar继承了Progre AndroID之Seekbar一、简介

Seekbar意思为拖动条,是Progressbar的一个子类。

在我们安卓的开发中也是应用非常的广泛。如音乐播放、音量条、播放进度条,等等。AndroID系统只提供了水平的,默认的样式,我们也可以根据自己需求自定义样式。

二、常用属性和方法

seekbar继承了Progressbar,Progressbar所支持的xml属性和方法都适用于seekbar,Progressbar的使用可以看这篇博客Android之 ProgressBar的简单使用

这里介绍下最常用属性和方法:

属性名含义
max设置该进度条的最大值
progress设置该进度条的已完成进度值
progressDrawable自定义drawable显示
secondaryProgress定义二级进度值,值介于0到max。该进度在主进度和背景之间。比如用于网络播放视频时,二级进度用于表示缓冲进度,主进度用于表示播放进度。
thumb设置进度条的滑块图片
splitTrack滑块底部 背景样式 (false为透明 )
getMax() //返回这个进度条的范围的上限getProgress():返回进度getsecondaryProgress() //返回二级进度incrementProgressBy(int diff) //指定增加的进度isIndeterminate() //指示进度条是否在不确定模式下setIndeterminate(boolean indeterminate) //设置不确定模式下

三、简单使用

实现一个简单seekbar监听事件,改变图片的透明度

编写布局代码

因为图片的透明度分为256阶(0-255),所以我们的max属性要设置为255,初始值progress属性也设置为255,使照片不透明可见。

<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    xmlns:app="http://schemas.androID.com/apk/res-auto"    xmlns:tools="http://schemas.androID.com/tools"    androID:layout_wIDth="match_parent"    androID:layout_height="match_parent"    tools:context=".MainActivity"    androID:orIEntation="vertical">    <TextVIEw        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content"        androID:text="拖动条"        androID:layout_gravity="center"        androID:layout_margintop="50dp"/>    <ImageVIEw        androID:ID="@+ID/iv_zhuyin"        androID:layout_wIDth="match_parent"        androID:layout_height="250dp"        androID:src="@drawable/zhuyin"/>        <Seekbar            androID:ID="@+ID/seek_bar"            androID:layout_marginleft="15dp"            androID:layout_marginRight="15dp"            androID:splitTrack="false"            androID:max="255"            androID:progress="255"            androID:layout_wIDth="match_parent"            androID:layout_height="wrap_content"            androID:thumb="@drawable/seekbar01"/>        <TextVIEw            androID:ID="@+ID/tv_progress"            androID:layout_wIDth="wrap_content"            androID:layout_height="wrap_content"            androID:layout_margintop="10dp"            androID:layout_gravity="center"            androID:text="当前透明度:255/255"/></linearLayout>
编写MainActivity里的java代码

主要是实现一个seek的监听事件,OnSeekbarchangelistener() 可以为拖动条添加监听事件,该监听事件重写三个方法。

方法作用
onStartTrackingtouch当开始滑动滑块时,会执行该方法下的代码
onStopTrackingtouch当结束滑动滑块时,会执行该方法下的代码
onProgressChanged当滑块进度改变时,会执行该方法下的代码
public class MainActivity extends AppCompatActivity {    private Seekbar mSeekbar;    private TextVIEw mTextVIEw;    private ImageVIEw mImageVIEw;    @OverrIDe    protected voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.activity_main);        mSeekbar=findVIEwByID(R.ID.seek_bar);        mTextVIEw=findVIEwByID(R.ID.tv_progress);        mImageVIEw=findVIEwByID(R.ID.iv_zhuyin);        mSeekbar.setonSeekbarchangelistener(new Seekbar.OnSeekbarchangelistener() {            @OverrIDe  //当滑块进度改变时,会执行该方法下的代码            public voID onProgressChanged(Seekbar seekbar, int i, boolean b) {                mImageVIEw.setAlpha(i);//设置当前的透明度                mTextVIEw.setText("当前透明度: " +i+"/255");            }            @OverrIDe  //当开始滑动滑块时,会执行该方法下的代码            public voID onStartTrackingtouch(Seekbar seekbar) {                Toast.makeText(MainActivity.this,"我seekbar开始滑动了",Toast.LENGTH_SHORT).show();            }            @OverrIDe   //当结束滑动滑块时,会执行该方法下的代码            public voID onStopTrackingtouch(Seekbar seekbar) {                Toast.makeText(MainActivity.this,"我seekbar结束滑动了",Toast.LENGTH_SHORT).show();            }        });    }}

最后实现效果:

四、自定义Seekbar

有时候系统的样式不好看,不足以满足开发美观需求,这个时候就需要自定义样式,使用xml资源文件进行样式的编辑。最后在布局文件中通过属性progressDrawable引用。
如果要实现非常复杂的样式就需要使用到VIEw的自定义了,可以自己去了解学习下,自定义view可以实现几乎所有你想的到的样式。

下面放几个我觉得还挺好看的。


上图xml为:

<?xml version="1.0" enCoding="utf-8"?><@R_115_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:ID="@androID:ID/background">        <shape>            <corners androID:radius="60dp" />            <gradIEnt                androID:angle="0"                androID:centercolor="#F39801"                androID:centerY="0.20"                androID:endcolor="#F39801"                androID:startcolor="#F39801" />        </shape>    </item></@R_115_3419@>

上图xml为:

<?xml version="1.0" enCoding="utf-8"?><@R_115_3419@    xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:ID="@androID:ID/background">        <shape>            <solID androID:color="#22dddd" />        </shape>    </item>    <item androID:ID="@androID:ID/secondaryProgress">        <clip>            <shape>                <solID androID:color="#3CC4C4" />            </shape>        </clip>    </item>    <item androID:ID="@androID:ID/progress">        <clip>            <shape>                <solID androID:color="#70CC33" />            </shape>        </clip>    </item></@R_115_3419@>

上图xml为:

<?xml version="1.0" enCoding="utf-8"?><@R_115_3419@ xmlns:androID="http://schemas.androID.com/apk/res/androID">    <item androID:ID="@androID:ID/background">        <shape>            <corners androID:radius="5dp"/>        </shape>        <!--    背景颜色-->        <color androID:color="#CCCCCC"/>    </item>    <item androID:ID="@androID:ID/progress">        <clip            androID:clipOrIEntation="horizontal"            androID:gravity="left">            <shape>                <corners androID:radius="5dp"/>                <!--  开始颜色,中途颜色,最后颜色-->                <gradIEnt                    androID:startcolor="#00FF00"                    androID:centercolor="#FFFF00"                    androID:endcolor="#FF0000"/>            </shape>        </clip>    </item></@R_115_3419@>


通过thumb引用图片就可以自定义自己喜欢的图标了。

这里推荐一个很好用的矢量图标网站。iconfont-阿里巴巴矢量图标


今天的分享就到此为止了吧,加油。海绵宝宝!

总结

以上是内存溢出为你收集整理的Android之SeekBar的简单使用全部内容,希望文章能够帮你解决Android之SeekBar的简单使用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1004509.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-22
下一篇2022-05-22

发表评论

登录后才能评论

评论列表(0条)

    保存