Android-SeekBar(拖动进度条)

学习使用SeekBar,设置样式

我的学习步骤

  1. 在xml中拖出一个SeekBar控件

    • 效果图
      这里写图片描述
    • 代码
      <SeekBar
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          android:id="@+id/seekBar" />
  2. 只想说这不是我想要的风格,然后参考了自定义漂亮的Android SeekBar样式

  3. 首先改改基本布局

            <SeekBar
                android:id="@+id/seekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:focusable="true"  获取焦点
                android:maxHeight="4dp"  最大高度
                android:minHeight="4dp"   最小高度
                android:paddingLeft="30dp"
                android:paddingRight="30dp"/>
  4. 现在设置背景样式了

          <SeekBar
                android:id="@+id/seekBar"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:focusable="true"
                android:maxHeight="4dp"
                android:minHeight="4dp"
                android:paddingLeft="30dp"
                android:paddingRight="30dp"
                android:progress="50" 设置了当前拖动位置
                android:secondaryProgress="70" 设置了加载的进度
                android:progressDrawable="@drawable/po_seekbar" 设置了拖动SeekBar的各种显示状态背景颜色
                android:thumb="@drawable/seekbar_thumb"/> 设置了拖动按钮的样式
    • 效果图:
      设置后的效果图
    • po_seekbar.xml代码如下:
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@android:id/background"> 蓝色背景设置
        <shape>
            <solid android:color="#0000ff" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">红色进度颜色设置
        <clip>
            <shape>
                <solid android:color="#ff0000" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">紫色拉动进度颜色设置
        <clip>
            <shape>
                <solid android:color="#ff996dfe" />
            </shape>
        </clip>
    </item>
    </layer-list>
    • seekbar_thumb.xml代码如下:
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    当获取焦点、没有按下的时候显示的图片
    <item android:state_focused="true" android:state_pressed="false" android:drawable="@mipmap/seekbar_thumb_normal" />
    当获取焦点、按下的时候显示的图片
    <item android:state_focused="true" android:state_pressed="true" android:drawable="@mipmap/seekbar_thumb_pressed" />
    当没有获取焦点、按下的时候
    <item android:state_focused="false" android:state_pressed="true" android:drawable="@mipmap/seekbar_thumb_pressed" />
    其他状态的时候
    <item android:drawable="@mipmap/seekbar_thumb_normal" />
    </selector>

    seekbar_thumb_normal.png
    seekbar_thumb_normal.png
    seekbar_thumb_pressed.png
    seekbar_thumb_pressed.png

  5. 最后在java代码里获取控件设置监听事件

        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
    
            }
    
            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
    
            }
    
            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
    
            }
        });

我的感受

  • layer-list 标签是可以用来叠加图像的
  • clip标签好像是根据条件剪切图形( ̄┰ ̄*)
  • android:secondaryProgress可以用来显示数据加载的进度,比如正在播放的连网音乐下载进度,我们就可以根据下载进度来快进了

想说的话

  • 博客坚持写,不管怎么样,今后打算学习了新的东西就在这里记录一下,以便今后回顾,也希望小小笔记能帮助你们

  • 如果内容有什么地方不对,请告知,希望大家能一起学习和成长(^o^)/~

  • 来一句:理解并承认自己也会犯错误,犯了错误之后我们可以从中学习经验,然后保持一个积极的心态,继续前行继续进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值