seekbar简单使用(一)

一般用于一些音乐,视频类的软件项目里面会有需求,后面可能会写一些自定义的seekbar效果

 

运行效果:

(1)在activity_main里面添加如下代码:

<?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="match_parent"
    android:background="@color/bg"
    android:padding="10dp">

    <SeekBar
        android:id="@+id/progress"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/text1"
        android:maxHeight="2dp"
        android:minHeight="2dp"
        android:paddingBottom="3dp"
        android:paddingLeft="12dp"
        android:max="60"
        android:paddingRight="12dp"
        android:paddingTop="3dp"
        android:progressDrawable="@drawable/layer_progress"
        android:thumb="@drawable/shape_circle" />

    <TextView
        android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="left"
        android:padding="6dp"
        android:text="Value:0"
        android:textColor="@color/white"
        android:textSize="20sp" />
</RelativeLayout>

(2)在drawable文件夹里面新建shape_circle.xml,这个文件用于控制圆点的颜色和大小

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
    <!-- solid表示远的填充色 -->
    <solid android:color="@color/white" />
    <!-- stroke则代表远的边框线 -->
    <stroke
        android:width="1dp"
        android:color="@color/white" />
    <!-- size控制高宽 -->
    <size
        android:height="20dp"
        android:width="20dp" />
</shape>


(3)在drawable文件夹里面新建layer_progress.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>
            <corners android:radius="3dp" />
            <solid android:color="#282B32" />
        </shape>
    </item>
    <item android:id="@android:id/secondaryProgress">
        <clip>
            <shape>
                <corners android:radius="3dp" />
                <solid android:color="#DE5145" />
            </shape>
        </clip>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <corners android:radius="3dp" />
                <solid android:color="#ff9933" />
            </shape>
        </clip>
    </item>
</layer-list>

(4)在MainActivity文件中监听进度条的值,并显示

public class MainActivity extends AppCompatActivity {
    private SeekBar seekBar;
    private TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        seekBar = (SeekBar) findViewById(R.id.progress);
        textView = (TextView) findViewById(R.id.text1);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
                // 当拖动条的滑块位置发生改变时触发该方法,在这里直接使用参数progress,即当前滑块代表的进度值
                textView.setText("Value:" + Integer.toString(progress));
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                Log.e("------------", "开始滑动!");
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Log.e("------------", "停止滑动!");
            }
        });
    }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值