Android SeekBar:拖动条控件

SeekBar 是水平进度条 ProgressBar 的间接子类,相当于一个可以拖动的水平进度条。下面仍以一个简单的实例讲解 SeekBar 组件的使用方法。

在工程 WidgetDemo 的布局文件 main.xml 中添加一个名为“SeekBarDemo”的 Button,用以启动 SeekBarActivity。

在 main.xml 中添加代码如下:

 
  1. <Button
  2. android:id="@+id/button8"
  3. android:layout_width="wrap_content"
  4. android:layout_height="wrap_content"
  5. android:text="SeekBarDemo" />

单击 Button 并启动 SeekBarActivity 的代码如下:

 
  1. Button seekbtn2 = (Button)this.findViewById(R.id.button8);
  2. seekbtn2.setOnClickListener(new View.OnClickListener(){
  3. @Override
  4. public void onClick(View v){
  5. Intent intent;
  6. intent = new Intent(MainActivity.this, SeekBarActivity.class);
  7. startActivity(intent);
  8. }
  9. });

同时在 AndroidManifest.xml 文件中声明该 Activity:

<activity android:name=".SeekBarActivity"></activity>

SeekBarActivity 的运行效果如图 1 所示。
 

SeekBarActivity的运行效果
图 1  SeekBarActivity的运行效果


SeekBarActivity 使用的布局文件为 seekbar.xml,其内容如下:

 
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="match_parent"
  4. android:layout_height="match_parent"
  5. android:orientation="vertical">
  6. <TextView
  7. android:id="@+id/textView1"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="TextView"/>
  11. <SeekBar
  12. android:id="@+id/seekBar1"
  13. android:layout_width="match_parent"
  14. android:layout_height="wrap_content"
  15. android:max="100"/>
  16. </LinearLayout>

该文件确定 SeekBar 对象的最大值为 100,宽度为手机屏幕的宽度。

SeekBarActivity.java 的代码如下:

 
  1. package introduction.android.widgetdemo;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.util.Log;
  6. import android.widget.SeekBar;
  7. import android.widget.TextView;
  8.  
  9. public class SeekBarActivity extends Activity {
  10. private TextView textView;
  11. private SeekBar seekBar;
  12.  
  13. @Override
  14. public void onCreate(Bundle savedlnstanceState) {
  15. super.onCreate(savedlnstanceState);
  16. setContentView(R.layout.seekbar);
  17. textView = (TextView) findViewById(R.id.textView1);
  18. seekBar = (SeekBar) findViewById(R.id.seekBar1);
  19. /* 设置SeekBar 监听setOnSeekBarChangeListener */
  20. seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
  21. /*拖动条停止拖动时调用 */
  22. @Override
  23. public void onStopTrackingTouch(SeekBar seekBar) {
  24. Log.i("SeekBarActivity", "拖动停止");
  25. }
  26.  
  27. /*拖动条开始拖动时调用*/
  28. @Override
  29. public void onStartTrackingTouch(SeekBar seekBar) {
  30. Log.i("SeekBarActivity", "开始拖动");
  31. }
  32.  
  33. /* 拖动条进度改变时调用*/
  34. @Override
  35. public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
  36. textView.setText("当前进度为:" + progress + "%");
  37. }
  38. });
  39. }
  40. }

SeekBar 的事件处理接口为 OnSeekBarChangeListener,该监听器提供对三种事件的监听,分别为当 SeekBar 的拖动条开始被拖动时、拖动条拖动停止时和拖动条的位置发生改变时。

SeekBarActivity 在拖动条开始被拖动和拖动停止时,会通过 Logcat 打印相关信息。
当拖动条位置发生改变时,将当前的数值显示到 TextView 中。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值