android学习笔记(26)拖动条(SeekBar)的功能和用法

文章标签: android
2014-12-26 19:43:53     人阅读    

拖动条(SeekBar)的功能和用法
           拖动条和进度条非常相似,只是进度条采用颜色填充来表明进度完成的程度,而拖动条 则通过滑块的位置来标识数值——而且拖动条允许用户拖动滑块来改变值,因此拖动条通常 用于对系统的某种数值进行调节,比如调节音量等。
SeekBar允许用户改变拖动条的滑块外观,改变滑块外观通过如下属性来指定。 android:thumb:指定一个Drawable对象,该对象将作为自定义滑块。
为了让程序能响应拖动条滑块位置的改变,程序可以考虑为它绑定一个OnSeekBar ChangeListener 监听器。
下面通过一个示例程序来示范SeekBar的功能和用法。


实例:通过拖动滑块来改变图片的透明度
该程序的界面布局中需要两个组件:一个ImageView用于显示图片,一个SeekBar用于 动态改变图片的透明度。界面布局文件如下。
程序清单:codes\02\2.4\SeekBarTest\res\layout\main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<ImageView 
 android:id="@+id/image"
 android:layout_width="fill_parent" 
 android:layout_height="240px" 
 android:src="@drawable/lijiang"
 />
<!-- 定义一个拖动条,并改变它的滑块外观 -->
<SeekBar 
 android:id="@+id/seekbar"
 android:layout_width="fill_parent" 
 android:layout_height="wrap_content" 
 android:max="255"
 android:progress="255"
 android:thumb="@drawable/icon"
 />
</LinearLayout>

上面的程序中粗体字代码定义了该拖动条的最大值、当前值都是255,并通过指定 android:thumb属性来改变拖动条上滑块的外观。
该示例的主程序比较简单,程序只要为拖动条绑定一个监听器,当滑块位置发生改变时 动态改变ImageView的透明度即可。主程序如下。
程序清单:codes\〇2\2.4\SeekBarTest\src\org\crazyit\seekbar\SeekBarTest.java

package org.crazyit.seekbar;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;

/**
 * Description:
 * <br/>site: <a href="http://www.crazyit.org">crazyit.org</a> 
 * <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
 * <br/>This program is protected by copyright laws.
 * <br/>Program Name:
 * <br/>Date:
 * @author  Yeeku.H.Lee kongyeeku@163.com
 * @version  1.0
 */
public class SeekBarTest extends Activity
{
 @Override
 public void onCreate(Bundle savedInstanceState)
 {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  final ImageView image = (ImageView)findViewById(R.id.image);
  SeekBar seekBar = (SeekBar)findViewById(R.id.seekbar);
  
  seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener()
  {
   //当拖动条的滑块位置发生改变时触发该方法
   @Override
   public void onProgressChanged(SeekBar arg0
    , int progress, boolean fromUser)
   {
    //动态改变图片的透明度
    image.setAlpha(progress);
    
   }
   @Override
   public void onStartTrackingTouch(SeekBar bar){}
   @Override
   public void onStopTrackingTouch(SeekBar bar){}
  });
 }
}

上面的粗体字代码就是监听拖动条上滑块位置发生改变的关键代码:当滑块位置发生改 变时,ImageView的透明度将变为该拖动条的当前数值。


原文地址:http://www.itmmd.com/201412/388.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android学习笔记(27)星级评分条(RatingBar )   上一篇
下一篇  如何查看android展示网页的源代码?
精彩回复
我要追加问题,请求站长解决!
姓名:       

《程序员app》专门为程序员量身定做!