android 控件教程之SeekBar进度条

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如下图:


页面效果截图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值