首页 > 从零開始学androidlt;SeekBar滑动组件.二十二.gt;

从零開始学androidlt;SeekBar滑动组件.二十二.gt;

拖动条能够由用户自己进行手工的调节,比如:当用户须要调整播放器音量或者是电影的播放进度时都会使用到拖动条,SeekBar类的定义结构例如以下所看到的:
java.lang.Object
   android.view.View
     android.widget.ProgressBar
       android.widget.AbsSeekBar
         android.widget.SeekBar
经常用法
public SeekBar(Context context)
构造
创建SeekBar类的对象
public void setOnSeekBarChangeListener(
SeekBar.OnSeekBarChangeListener l)
普通
设置改变监听操作
public synchronized void setMax(int max)
普通
设置增长的最大值


public static interface SeekBar.OnSeekBarChangeListener{
/**
 * 開始拖动时触发操作
 * @param seekBar 触发操作的SeekBar组件对象
 */
public abstract void onStartTrackingTouch(SeekBar seekBar) ;
/**
 * @param seekBar 触发操作的SeekBar组件对象
 * @param progress 当前的进度值
 * @param fromUser 是否为用户自己触发
 */
public abstract void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) ;
/**
 * 停止拖动时触发操作
 * @param seekBar 触发操作的SeekBar组件对象
 */
public abstract void onStopTrackingTouch(SeekBar seekBar) ;
}




主要的使用




xml文件



java文件


package com.example.seekbar;import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;public class MainActivity extends Activity implements OnSeekBarChangeListener{private TextView textView1,textView2;private SeekBar seekBar1,seekBar2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);textView1=(TextView)this.findViewById(R.id.textView1);textView2=(TextView)this.findViewById(R.id.textView2);seekBar1=(SeekBar)this.findViewById(R.id.seekBar1);seekBar2=(SeekBar)this.findViewById(R.id.seekBar2);seekBar1.setOnSeekBarChangeListener(this);seekBar2.setOnSeekBarChangeListener(this);}@Overridepublic void onProgressChanged(SeekBar seekBar, int position, boolean flag) {// TODO Auto-generated method stubif (seekBar.getId()==seekBar1.getId()){textView1.setText("当前seekbar1刻度"+position);}else {textView2.setText("当前seekbar2刻度"+position);}}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubif (seekBar.getId()==seekBar1.getId()){textView1.setText("開始滑动seek1");}else {textView2.setText("開始滑动seek2");}}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubif (seekBar.getId()==seekBar1.getId()){textView1.setText("停止滑动seek1");}else {textView2.setText("停止滑动seek2");}}}


效果图






使用seekbar来控制屏幕的亮度




xml文件




JAVA文件




package com.example.seekbardemo;import android.app.Activity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;public class MainActivity extends Activity implements OnSeekBarChangeListener {
private SeekBar myseekBar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);myseekBar=(SeekBar)this.findViewById(R.id.seekBar1);myseekBar.setOnSeekBarChangeListener(this);}@Overridepublic void onProgressChanged(SeekBar seekBar, int position, boolean flag) {// TODO Auto-generated method stub}
//调节亮度的方法private void setScreenBrightness(float num) {WindowManager.LayoutParams layoutParams = getWindow().getAttributes();		// 取得window属性layoutParams.screenBrightness = num;			// num已经除以100super.getWindow().setAttributes(layoutParams); // 0~1之间}@Overridepublic void onStartTrackingTouch(SeekBar arg0) {// TODO Auto-generated method stub}//在拖动结束是使用getProgress获得当前的Progress值来设置亮度@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubif (seekBar.getId()==myseekBar.getId()) {
//			将progress除以100并转换为float类型setScreenBrightness((float)seekBar.getProgress()/100);}}}


效果图




改变后








当然,使用SeekBar组件也能够对音量进行控制,大家能够查询相关API自行尝试












下节预报:RatingBar评分组件


更多相关:

  • android:id 为控件指定相应的IDandroid:text 指定控件的文本,置尽量使用strings.xmlandroid:grivity 指定控件的基本位置 ,比如举重,居右,android:padding 指定控件的内边距,控件当中的内容android:singleLine 如果设置为真的话,则将控件的内容在同一行当中显示...

  • 布局主要分两个 其中主布局是

  • 大家平时见到的最多的可能就是Frame动画了,Android中当然也少不了它。它的使用更加简单,只需要创建一个 AnimationDrawabledF对象来表示Frame动画,然后通过addFrame 方法把每一帧要显示的内容添加进去,并设置播放间隔时间,本例子中间隔时间为5S, 最后通过start 方法就可。 以播放这个动画了,...

  • 作业要求: 作一个显示框里面分成三行 一二行占这个框的1/2 第三行独占1/2 第三行里面分成两列第一列占25%,第二列占75%。 屏幕显示效果 实现步骤:  

  • 一:Service简介 Android开发中,当需要创建在后台运行的程序的时候,就要使用到Service。 1:Service(服务)是一个没有用户界面的在后台运行执行耗时操作的应用组件。其他应用组件能够启动Service,并且当用户切换到另外的应用场景,Service将持续在后台运行。另外,一个组件能够绑定到一个service与之交...

  • 1. android:layout_weight使用说明: layout_weight是权重的意思,也就是各个控件所占的比重,用在LinearLayout布局中。当我们使用layout_weight的时候,layout_width和layout_height有三种表示方法   2. android:layout_weight使用之 l...

  • 发现很多Android应用的选项卡 都是显示在页面底部的,网上有资料:通过反射获取TabWidget中的私有变量,改变其值。今天反编译了腾讯微薄,发现实现这个很简单, 只需将布局文件中标签加个android:layout_gravity="bottom", 选项卡就会显示在页面底部,默认是android:...