博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从零開始学android<SeekBar滑动组件.二十二.>
阅读量:5051 次
发布时间:2019-06-12

本文共 4036 字,大约阅读时间需要 13 分钟。

拖动条能够由用户自己进行手工的调节,比如:当用户须要调整播放器音量或者是电影的播放进度时都会使用到拖动条,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;    @Override    protected 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);    }	@Override	public void onProgressChanged(SeekBar seekBar, int position, boolean flag) {		// TODO Auto-generated method stub		if (seekBar.getId()==seekBar1.getId())		{			textView1.setText("当前seekbar1刻度"+position);					}		else {			textView2.setText("当前seekbar2刻度"+position);		}	}	@Override	public void onStartTrackingTouch(SeekBar seekBar) {		// TODO Auto-generated method stub		if (seekBar.getId()==seekBar1.getId())		{			textView1.setText("開始滑动seek1");					}		else {			textView2.setText("開始滑动seek2");		}	}	@Override	public void onStopTrackingTouch(SeekBar seekBar) {		// TODO Auto-generated method stub		if (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;	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		myseekBar=(SeekBar)this.findViewById(R.id.seekBar1);		myseekBar.setOnSeekBarChangeListener(this);	}		@Override	public 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已经除以100		super.getWindow().setAttributes(layoutParams); // 0~1之间	}	@Override	public void onStartTrackingTouch(SeekBar arg0) {		// TODO Auto-generated method stub			}//在拖动结束是使用getProgress获得当前的Progress值来设置亮度	@Override	public void onStopTrackingTouch(SeekBar seekBar) {		// TODO Auto-generated method stub		if (seekBar.getId()==myseekBar.getId()) {//			将progress除以100并转换为float类型			setScreenBrightness((float)seekBar.getProgress()/100);		}	}}
效果图
改变后
当然,使用SeekBar组件也能够对音量进行控制,大家能够查询相关API自行尝试
下节预报:RatingBar评分组件

转载于:https://www.cnblogs.com/mengfanrong/p/3945134.html

你可能感兴趣的文章
(转载)iOS UILabel自定义行间距时获取高度
查看>>
Linux里$等记得转义
查看>>
Powershell使用管道
查看>>
银行卡输入特效 4个加一空格
查看>>
zip unzip linux下使用
查看>>
每日英语:Instant Gratification: China Luxury Buyers Getting More Impulsive
查看>>
Java数据库操作学习
查看>>
使用更改跟踪(ChangeTracking)来实现数据类型变更
查看>>
c++访问mysql数据库
查看>>
JAVA代码查错试题集
查看>>
C#中小数点后保留两位小数,四舍五入的函数及使用方法
查看>>
你的JavaBean是否真的需要实现Serializable
查看>>
CSS3效果:立体字和镂空字
查看>>
规范 : angular 组合 jquery plugin
查看>>
文字无缝向上滚动
查看>>
IE6,谢谢你,goodbye?
查看>>
mongoDB 索引的用法
查看>>
Linux +apache+fastcgi运行c/c++
查看>>
atitit。 hb Hibernate sql 查询使用
查看>>
相关Python分割操作
查看>>