android 控件教程之SeekBar进度条分析

访客 阅读:172 2021-03-31 22:49:55 评论:0

SeekBar 简介:

SeekBar是进度条。我们使用进度条时,可以使用系统默认的进度条;也可以自定义进度条的图片和滑块图片等。


SeekBar 示列

创建一个activity,包含1个SeekBar。

SeekBar是自定义SeekBar,使用自定义的背景图和滑块图片。


界面代码:

package com.dsn.activity; 
 
import com.application.dnsclient.R; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.SeekBar; 
import android.widget.SeekBar.OnSeekBarChangeListener; 
import android.widget.Toast; 
 
public class MainActivity extends Activity implements OnSeekBarChangeListener { 
	// 自定义SeekBar 
    private SeekBar SeekBarSelf; 
	@Override 
	public void onCreate(Bundle savedInstanceState) { 
		// TODO Auto-generated method stub 
		super.onCreate(savedInstanceState); 
		setContentView(R.layout.mainactivity); 
		 
		SeekBarSelf=(SeekBar) findViewById(R.id.seekbar); 
		SeekBarSelf.setOnSeekBarChangeListener(this); 
	} 
 
	@Override 
	public void onProgressChanged(SeekBar seekBar, int progress, 
			boolean fromUser) { 
		// TODO Auto-generated method stub 
		switch (SeekBarSelf.getId()) { 
		case R.id.seekbar: 
			//提示进度条的值 
			Toast.makeText(MainActivity.this, "SeekBar 值为:"+SeekBarSelf.getProgress(), Toast.LENGTH_LONG).show(); 
			break; 
 
		default: 
			break; 
		} 
		 
	} 
 
	@Override 
	public void onStartTrackingTouch(SeekBar seekBar) { 
		// TODO Auto-generated method stub 
		 
	} 
 
	@Override 
	public void onStopTrackingTouch(SeekBar seekBar) { 
		// TODO Auto-generated method stub 
		 
	} 
	 
	 
 
} 
代码说明:
要监听SeekBar的滑动消息,通过实现“SeekBar.OnSeekBarChangeListener”接口。这个接口中包含3个方法onStartTrackingTouch()、onStopTrackingTouch()和onProgressChanged()。


布局文件说明:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 
     
    
            <SeekBar 
        android:id="@+id/seekbar" 
        android:layout_width="468px" 
        android:layout_height="wrap_content" 
        android:max="30" 
        android:progress="10" 
        android:progressDrawable="@drawable/bg_bar" 
        android:thumb="@drawable/thumb_bar" /> 
   
 
 
 
</LinearLayout>

自定义SeekBar的背景定义为:android:progressDrawable="@drawable/bg_bar"。
它调用的bg_bar.xml的内容如下:

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- 背景图 --> 
    <item android:id="@+android:id/background" android:drawable="@drawable/bar_dn" /> 
    <!-- 第二进度图 --> 
    <item android:id="@+android:id/SecondaryProgress" android:drawable="@drawable/bar_dn" /> 
    <!-- 进度度 --> 
    <item android:id="@+android:id/progress" android:drawable="@drawable/bar_up" /> 
</layer-list>
bar_dn.png如下图:


bar_up.png如下图:



自定义SeekBar的滑块定义为:android:thumb="@drawable/thumb_bar"。
它调用的thumb_bar.xml的内容如下:

<?xml version="1.0" encoding="UTF-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <!-- 按下状态 --> 
    <item android:state_pressed="true" 
        android:drawable="@drawable/thumb_dn" /> 
 
    <!-- 焦点状态 --> 
    <item android:state_focused="true" 
        android:drawable="@drawable/thumb_up" /> 
     
    <!-- 默认状态 --> 
    <item android:drawable="@drawable/thumb_up" />   
     
</selector> 
thumb_up.png如下图:


thumb_dn.png如下图:


页面效果截图:


声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

一个IT知识分享的公众号