Android练习-----拖动条(SeekBar)

来源:互联网 发布:冰箱什么牌子好 知乎 编辑:程序博客网 时间:2024/05/21 14:48

拖动条与进度条类似,不同的是,拖动条允许用户拖动滑块来改变值,通常用于实现对某种数值的调节。如调亮屏幕亮度或音量大小。

在屏幕中添加拖动条,可以在 XML 布局文件中通过 < SeekBar > 标记来添加,其基本语法格式如下:

<SeekBar        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/seekBar"/>

SeekBar 控件允许用户改变拖动滑块的外观,这里可以使用 android:thumb 属性实现,该属性的属性值为一个 Drawable 对象,该对象将作为自定义滑块。


在Android Stdio 中创建一个 Android 项目,名称为 Ch06_03 来实现一个滑块拖动条的实例。

(1)在项目的 res/layout 目录下修改 activity_main.xml 文件,将布局改为线性布局,方向为垂直,并添加两个文本框控件和一个拖动条控件,代码入下:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:id="@+id/activity_main"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    >    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/textView01" />    <SeekBar        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/seekBar"/>    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/textView02"/></LinearLayout>

(2)在 MainActivity.java 文件中,首先获取到两个文本框控件和拖动条控件,然后为拖动条控件添加 OnSeekBarChangeListener 监听器,将拖动条的动态和位置在文本框控件中显示出来,其主要代码如下:

import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.SeekBar;import android.widget.TextView;public class MainActivity extends AppCompatActivity {    private SeekBar seekBar;    private TextView textView01;    private TextView textView02;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        seekBar = (SeekBar) findViewById(R.id.seekBar);        textView01 = (TextView) findViewById(R.id.textView01);        textView02 = (TextView) findViewById(R.id.textView02);        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {//位置改变                textView01.setText("正在滑动");                textView02.setText("当前值为:" + i); //将文本框的值修改为拖动条当前的位置            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {//开始滑动                    textView01.setText("开始滑动");            }            @Override            public void onStopTrackingTouch(SeekBar seekBar) {//停止滑动                    textView01.setText("结束滑动");            }        });    }}

在上述代码中,先获取到拖动条控件,然后为其添加监听器,监听对拖动条控件的操作。在监听器中的 OnStartTrackingTouch(SeekBar seekbar) 方法开始滑动拖动条时调用,onStopTrackingTouch(SeekBar seekBar) 方法在结束滑动拖动条时调用,onProgressChanged(SeekBar seekBar, int i, boolean b) 方法在滑块位置改变时调用。其中 i 参数表示当前进度,也就是拖动条的值。在滑动滑块时调用相应的方法,通过改变文本框控件的值,显示对拖动条的操作。


运行该项目
这里写图片描述

滑块滑动时效果图
这里写图片描述

停止滑动滑块时效果图
这里写图片描述

0 0
原创粉丝点击