Android 可拖动的进度条:SeekBar之简单使用

这里写图片描述

一、SeekBar的用处

SeekBar是ProgressBar的扩展,是一个可以拖动的进度条,这样用户就可以通过拖动控制条来改变进度,就好像我们听音乐、看电影的前进与后退就是通过它来实现的。

二、SeekBar的使用

 如果我们想要实现对拖动的控制,就需要对该事件进行监听,Android系统提供了一个监听接口SeekBar.OnSeekBarChangeListener,要实现它的监听功能只要实现其接口即可。
 在SeekBar中我们需要监听的主要有如下三个事件
 数值的改变(onProgressChanged):进度发生改变时调用
 开始拖动(onStartTrackingTouch):开始拖动的时候调用
 停止拖动(onStopTrackingTouch):停止拖动的时候调用 

了解了SeekBar的调用,我们来看下它的相关属性。
android:max ( 设置值的大小 )
android:thumb=”@drawable/” ( 显示的那个可拖动图标,如果没有设置该参数则为系统默认,如果自己需要重新定义,则将自己需要的图标存放在资源目录 /res/drawable下,然后调用即可)
android:thumbOffset (拖动图标的偏量值,可以让拖动图标超过bar的长度)
android:progress ( 设置seekbar当前进度条的默认值,范围0到max之间)
android:secondaryProgress (拖动图标随着当前的播放时间的走动而走动,同时我们也注意到了也有个缓冲看到的进度条,这个属性就是用来设置默认显示的值为多少,范围为0到max)
android:progressDrawable(用于自己定义SeekBar)

三、应用实例

布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity" 
    android:orientation="vertical">

    <SeekBar
        android:id="@+id/seekbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progress="30"
       />
    <TextView 
        android:id="@+id/tvdata"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
     <TextView 
        android:id="@+id/tvstate"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
</LinearLayout>

MainActivity:

package com.example.myseekbar;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class MainActivity extends Activity implements OnSeekBarChangeListener{
    private SeekBar mseekbar;
    private TextView mtvdata;
    private TextView mtvstate;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mseekbar=(SeekBar) findViewById(R.id.seekbar);
        mtvdata=(TextView) findViewById(R.id.tvdata);
        mtvstate=(TextView) findViewById(R.id.tvstate);
        //监听器
        mseekbar.setOnSeekBarChangeListener(this);       
    }
   //开始创建时调用
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.activity_main, menu);
        return true;
    }

    @Override
    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {
        mtvstate.setText("开始拖动");
        mtvdata.setText("当前进度数值是:"+progress);

    }

    @Override
    public void onStartTrackingTouch(SeekBar seekBar) {
        mtvstate.setText("开始拖动");

    }

    @Override
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        mtvstate.setText("停止拖动");
    }

}
  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值