Android开发学习 之 五、基本界面控件-5进度条

本文详细介绍了Android开发中常用的三种进度控件:ProgressBar、SeekBar和RatingBar。包括它们的基本用法、XML属性设置及如何通过代码进行交互控制。此外,还提供了具体的示例代码和应用场景说明。

五、基本界面控件-5进度条

5.5 进度条

5.5.1 ProgressBar

图5.5.1 ProgressBar

 

android.widget. ProgressBar,继承自android.view.View 。在android.widget包中。对应对话框ProgressDialog。

ProgressBar有两种展示方式,表盘形式(普通、小、大)和条形填充形式。在layout定义时,需要通过设施style属性类设置展示方式。

 

常用属性设置:

style

显示方式,取值:

?android:attr/progressBarStyleLarge / progressBarStyle / progressBarStyleSmall / progressBarStyleHorizontal

android:max

progressBarStyleHorizontal方式时,进度条满时的值。

android:progress

progressBarStyleHorizontal方式时,进度条主进度当前值。

android:secondaryProgress

progressBarStyleHorizontal方式时,进度条次进度当前值。

 

 

<ProgressBar android:layout_width="wrap_content"
	         android:layout_height="wrap_content"
	         style="?android:attr/progressBarStyleLarge" />
	         
<ProgressBar android:layout_width="wrap_content"
	         android:layout_height="wrap_content"
	         style="?android:attr/progressBarStyle"/>	
	         	
<ProgressBar android:layout_width="wrap_content"
	         android:layout_height="wrap_content"
	         style="?android:attr/progressBarStyleSmall" />	

<ProgressBar android:id="@+id/myProgressBar"
	         android:layout_width="fill_parent"
	         android:layout_height="wrap_content"
	         style="?android:attr/progressBarStyleHorizontal"
	         android:max="100"
	         android:progress="50"
	         android:secondaryProgress="75"/>
 

 

 

progressBarStyleHorizontal方式时,就需要指定进度条最大值,当前值,次要的当前值。还可以在代码中手动设置。

通过按钮改变progress和secondaryProgress的代码:

 

if (v.equals(this.buttonSubBar)) {
	this.myProgressBar.setProgress(this.myProgressBar.getProgress() - 10);
} else if (v.equals(this.buttonAddBar)) {
	this.myProgressBar.setProgress(this.myProgressBar.getProgress() + 10);
} else if (v.equals(this.buttonSubSecondaryBar)) {
	this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress() - 5);
} else if (v.equals(this.buttonAddSecondaryBar)) {
	this.myProgressBar.setSecondaryProgress(this.myProgressBar.getSecondaryProgress() + 5);
}
 

 

 

 

5.5.2 SeekBar

图5.5.2 SeekBar

 

android.widget. SeekBar拖动进度条,继承自android.widget.AbsSeekBar(android.widget. ProgressBar) 。在android.widget包中。

 

常用属性设置:

android:max

进度条满时的值。

android:progress

进度条主进度当前值。

android:thumb

拇指跟随图标。

android:thumbOffset

设置允许的轨道的范围扩展到拇指的拇指偏移量。

 

方法setOnSeekBarChangeListener(SeekBar.OnSeekBarChangeListener) 可进行监听,开始拖拽,停止拖拽,以及拖拽中进度条的值是否是用户改变等参数。

 

 

<SeekBar android:id="@+id/mySeekBar"
 		 android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:thumb="@drawable/thumb"
         android:thumbOffset="10px"
         android:max="100"
         android:progress="20"/>
 

 

 

this.mySeekBar = (SeekBar) super.findViewById(R.id.mySeekBar);

this.mySeekBar.setOnSeekBarChangeListener(onSeekBarChangeListener);

*
*
/**
 * seekBar 监听器
 */
private SeekBar.OnSeekBarChangeListener onSeekBarChangeListener = new SeekBar.OnSeekBarChangeListener() {

	@Override
	public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
		myTextSeekBar.setText(progress + "");
		Log.v(CommonConfig.LOG_TAG, "SeekBar onProgressChanged, progress: " + progress + ", fromUser: " + fromUser);
	}

	@Override
	public void onStartTrackingTouch(SeekBar seekBar) {
		Log.v(CommonConfig.LOG_TAG, "SeekBar onStartTrackingTouch");
	}

	@Override
	public void onStopTrackingTouch(SeekBar seekBar) {
		Log.v(CommonConfig.LOG_TAG, "SeekBar onStopTrackingTouch");
	}
};
 

 

 

5.5.3 RatingBar

图5.5.3 RatingBar

 

android.widget. RatingBar星式进度条,继承自android.widget.AbsSeekBar(android.widget. ProgressBar)。在android.widget包中。

 

常用属性设置:

android:isIndicator

是否是评级栏,指示器作用。True为指示器,用户不可操作。

android:numStars

总星数。

android:rating

当前星数。

android:stepSize

每次可以等加的最小单位。浮点数。

 

setOnRatingBarChangeListener(RatingBar.OnRatingBarChangeListener),添加一个监听器,可以监听每次改变。


 

<RatingBar android:id="@+id/myRatingBar"
 		   android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:isIndicator="false"
           android:numStars="5" 
           android:rating="1.5"
           android:stepSize="0.5"/>  

 

 

 

this.myRatingBar = (RatingBar) super.findViewById(R.id.myRatingBar);

this.myRatingBar.setOnRatingBarChangeListener(onRatingBarChangeListener);

*
*

/**
 * ratingBar 监听器
 */
private RatingBar.OnRatingBarChangeListener onRatingBarChangeListener = new RatingBar.OnRatingBarChangeListener() {

	@Override
	public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) {
		myTextRatingBar.setText(rating + " / " + ratingBar.getNumStars());
		Log.v(CommonConfig.LOG_TAG, "RatingBar onRatingChanged, rating: " + rating + ", fromUser: " + fromUser);
	}

};
 

 

基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值