Android开发手册SeekBar拖动条使用实例

目录
  • 实践过程
    • 常用属性
    • 基本使用
    • 自定义样式
    • 自定义样式

实践过程

常用属性

因为Seekbar继承自ProgressBar,所以ProgressBar支持的XML属性SeekBar都适用。

android:max="100"】:设置该进度条的最大值
android:progress="50"】:设置该进度条的已完成进度值
android:progressDrawable="@drawable/icon_xinsui"】:自定义drawable显示
android:secondaryProgress="50"】:定义二级进度值,值介于0到max。该进度在主进度和背景之间。比如用于网络播放视频时,二级进度用于表示缓冲进度,主进度用于表示播放进度。
android:splitTrack="false"】:设置进度条的滑块图片
android:thumb="@drawable/icon_xinsui"】:滑块底部 背景样式 (false为透明 )

公共方法总共有14个,小空直接亮个截图

基本使用

Java版

<TextView
    android:id="@+id/tvProgress"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:text="数值范围0~100之间,当前值:30"
    android:textSize="20sp" />
 
<SeekBar
    android:id="@+id/seekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
android:progress="30" />
复制代码
seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
    @Override
    public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
        tvProgress.setText("数值范围0~100之间,当前值:"+progress);
    }
 
    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
      
    }
 
    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
 
    }
});
复制代码

Kotlin版

seekBar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener {
           override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
                tvProgress.setText("数值范围0~100之间,当前值:$progress")
            }
 
            override fun onStartTrackingTouch(seekBar: SeekBar) {}
            override fun onStopTrackingTouch(seekBar: SeekBar) {}
        })
复制代码


然后使用Progressbar的属性indeterminateDrawable指定即可。

自定义样式

这是系统自带的一个对话框进度条,样式美观度不敢恭维。

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_bar);
    ProgressDialog pb = new ProgressDialog(this);
    pb.setMax(100);
    //点击外部是否可以被取消
    pb.setCancelable(true);
    //设置标题
    pb.setTitle("下载对话框");
    //设置中间文本内容
    pb.setMessage("正在下载中....");
    pb.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    pb.show();
    //在show后调用
    pb.setProgress(50);
}
复制代码

监听方法 onStartTrackingTouch:当开始滑动滑块时,会执行该方法下的代码 onStopTrackingTouch:当结束滑动滑块时,会执行该方法下的代码 onProgressChanged:当滑块进度改变时,会执行该方法下的代码

自定义样式

不管哪个平台系统样式都无法满足多样的市场需求和审美需求,自定义样式就是每个平台都具有的功能。

<SeekBar
    android:id="@+id/seekBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:progress="30"
    android:progressDrawable="@drawable/seekbar_one"
    android:thumb="@drawable/icon_xinsui" />
<SeekBar
    android:id="@+id/seekBarTwo"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="20dp"
    android:progress="30"
    android:progressDrawable="@drawable/seekbar_two"
android:thumb="@drawable/icon_xinsui" />
复制代码

seekbar_one.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#33AADD" />
        </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="#00ff00" />
            </shape>
        </clip>
    </item>
</layer-list>
复制代码

seekbar_two.xmk

<?xml version="1.0" encoding="utf-8"?>
<layer-list 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="#0000FF"
                    android:endColor="#FF0000"/>
            </shape>
        </clip>
    </item>
</layer-list>
复制代码

同理thumb其实也是可以自定义的,只不过这个通常美工给个图就搞定了,如果是动态整个drawable动画即可。

除此以外,通常我们还会遇见双向选择的滑动条,比如购物类App选择价格区间的时候。

可参考:

以上就是Android开发手册SeekBar拖动条使用实例的详细内容,更多关于Android开发SeekBar拖动条的资料请关注我们其它相关文章!

(0)

相关推荐

  • Android SeekBar 自定义thumb旋转动画效果

    目录 简介 示例 dimens.xml drawable shape_thumb_round_1.xml layers_thumb_ring_sweep_1.xml rotate_thumb_1.xml layers_seek_bar_progress_1.xml layout Activity中调用 小结 简介 某些音乐播放或者视频播放的界面上,资源还在加载时,进度条的原点(thumb)会显示一个转圈的效果. 资源加载完成后,又切换回静态效果.这个效果增强了用户体验. 一般来说有美术人员负责设

  • Android中SeekBar拖动条使用方法详解

    本文实例为大家分享了Android中SeekBar拖动条使用方法的具体代码,供大家参考,具体内容如下 SeekBar控件效果展示 拖动条SeekBar继承了ProgressBar,因此ProgressBar所支持的xml属性和方法完全适合SeekBar.只是进度条ProgressBar采用颜色填充来表明进度完成程度,拖动条SeekBar则通过滑块的外置来标识--拖动滑块允许进度值的改变.(例如:条件Android系统的音量) 如上图,通过拖动SeekBar滑块,实现图片透明度的修改.实现代码如下

  • Android中SeekBar拖动条控件使用方法详解

    SeekBar拖动条控件使用方法,具体内容如下 一.简介 1.  二.SeekBar拖动条控件使用方法 1.创建SeekBar控件 <SeekBar android:id="@+id/SeekBar1" android:layout_width="match_parent" android:layout_height="wrap_content" android:progress="30" /> 2.添加setOn

  • Android 自定义SeekBar 实现分段显示不同背景颜色的示例代码

    在最近的开发工作中,要实现一个调色板的进度条,SeekBar要分成10段显示不同颜色,功夫不负有心人,终于实现了这个功能,下面分享给大家 示例图: 1.自定义SeekBar import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Rect; import

  • Android中使用SeekBar拖动条实现改变图片透明度(代码实现)

    场景 效果 实现 将布局改为LinearLayout,并通过android:orientation="vertical">设置为垂直布局,然后添加一个ImageView和SeekBar,并分别添加id属性. 其中SeekBar,添加最大值为255.因为透明度的最大值就是255  android:max="255" 并设置当前值就是255 android:progress="255" 完整xml代码 <?xml version=&quo

  • Android双向选择控件DoubleSeekBar使用详解

    本文实例为大家分享了Android双向选择控件DoubleSeekBar的使用方法,供大家参考,具体内容如下 先看效果图 1.DoubleSlideSeekBar public class DoubleSlideSeekBar extends View { /** * 线条(进度条)的宽度 */ private int lineWidth; /** * 线条(进度条)的长度 */ private int lineLength = 400; /** * 字所在的高度 100$ */ private

  • Android开发手册SeekBar拖动条使用实例

    目录 实践过程 常用属性 基本使用 自定义样式 自定义样式 实践过程 常用属性 因为Seekbar继承自ProgressBar,所以ProgressBar支持的XML属性SeekBar都适用. [android:max="100"]:设置该进度条的最大值[android:progress="50"]:设置该进度条的已完成进度值[android:progressDrawable="@drawable/icon_xinsui"]:自定义drawabl

  • Android开发自定义双向SeekBar拖动条控件

    目录 目标:双向拖动的自定义View 实现步骤 自定义属性获取 确定自定义view尺寸 绘制相关的内容部分 滑动事件处理 目标:双向拖动的自定义View 国际惯例先预览后实现 我们要实现的就是一个段位样式的拖动条,用来做筛选条件用的,细心的朋友可能会发现微信设置里面有个一个通用字体的设置,拖动然后改变字体大小; 这个相对比微信那个的自定义view算是一个扩展,因为我们是双向滑动,这个多考虑的一点就是手指拖动的是哪一个滑动块! 我们先看下GIF预览,然后我们今天就一步步实现这个小玩意… 实现步骤

  • Android开发手册RatingBar星级评分控件实例

    目录 实践过程 初识 基本属性 点击事件 自定义样式 实践过程 初识 RatingBar是基于SeekBar和ProgressBar的扩展,用星型来显示等级评定. 通常应用场景是在用户评价那,如淘宝评价,打车订餐评价等等. 使用RatingBar的默认大小时,用户可以触摸/拖动或使用键来设置评分,它有两种样式(小风格用ratingBarStyleSmall,大风格用ratingBarStyleIndicator),其中大的只适合指示,不适合于用户交互. 基本属性 [android:isIndic

  • Android 动态改变SeekBar进度条颜色与滑块颜色的实例代码

    遇到个动态改变SeekBar进度条颜色与滑块颜色的需求,有的是根据不同进度改变成不同颜色. 对于这个怎么做呢?大家都知道设置下progressDrawable与thumb即可,但是这样设置好就是确定的了,要动态更改需要在代码里实现. 用shape进度条与滑块 SeekBar设置 代码里动态设置setProgressDrawable与setThumb 画图形,大家都比较熟悉,background是背景图,secondaryProgress第二进度条,progress进度条: <layer-list

  • SeekBar拖动条的应用实例

    本文实例为大家分享了SeekBar拖动条的应用代码,供大家参考,具体内容如下 目标效果 在该页面中放一个拖动条的状态提示信息,一个拖动条以及一个显示拖动条值的信息.当我们点击拖动条时,在状态栏显示:正在拖动,并显示此时拖动条的值:当停止点击拖动条的时候,状态显示:停止拖动. 目标界面如下所示: 页面布局 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=&quo

  • Android开发实现可拖动排序的ListView功能【附源码下载】

    本文实例讲述了Android开发实现可拖动排序的ListView功能.分享给大家供大家参考,具体如下: 一.上图 二.简述 1.需要实现的效果是长按右侧可拖动部分布局实现列表项的拖动排序 2.当点击列表项前面的单选按钮时,在该条目右侧显示删除图标,点击该图标删除当前条目. 三.实现思路 借助github上的开源代码drag-sort-listview-master加以改造. 四.主要源码展示 1.Activity代码 package com.gengducun.dslvdemo; import

  • Android开发手册Chip监听及ChipGroup监听

    目录 Chip监听 ChipGroup监听 实例 效果展示 Chip监听 选中状态的监听:setOnCheckedChangeListener,该监听只有设置了checkable 属性为true或者使用了[filter/entry/choice]这三个style主题的时候才生效. 点击事件的监听:setOnClickListener 关闭按钮被点击的监听:setOnCloseIconClickListener Java myChip.setOnCloseIconClickListener(Vie

随机推荐