Android29_SeekBar和RatingBar

阅读更多

 

一、使用SeekBar步骤:

       SeekBar一般用于进度可调的地方,比如在做音乐播放器的时候,调节音量以及调节歌曲播放进度的时候就是用的SeekBar

       1.在布局文件中声明SeekBar

 


        2.定义一个OnSeekBarChangeListener

 

class SeekBarListener implements OnSeekBarChangeListener{
		//当进度条发生变化时,就会调用该方法
		public void onProgressChanged(SeekBar seekBar, int progress,
				boolean fromUser) {
			System.out.println(progress);
		}
		//当用户开始滑动滑块时调用该方法
		public void onStartTrackingTouch(SeekBar seekBar) {
			System.out.println("seekbar start:"+seekBar.getProgress());
		}
		//当用户结束对滑块的滑动时调用该方法
		public void onStopTrackingTouch(SeekBar seekBar) {
			System.out.println("seekbar end:"+seekBar.getProgress());
		}
}

 运行结果:

Android29_SeekBar和RatingBar_第1张图片

输出结果:

Android29_SeekBar和RatingBar_第2张图片

 

当然这样的进度条如果作为播放器的控件就太难看了,可以定义自己的SeekBar样式,可以尽情的去想象扩展。


Android29_SeekBar和RatingBar_第3张图片
 其中seekbar_style.xml是进度条的样式,thumb.xml是进度条滑块的样式。

main.xml

 






 seekbar_style.xml

 

     
     
  
        
           
              
              
           
        
        
            
               
                   
                   
               
            
        
   

 thumb.xml

 

     
           
        
          
        
       
 

 SeekBarActivity.java

package com.android.activity;

import android.app.Activity;
import android.os.Bundle;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class SeekBarActivity extends Activity {
	
	//声明SeekBar 和 TextView对象
	SeekBar mSeekBar;
	TextView mProgressText;
	TextView mTrackingText;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
    	//取得SeekBar对象
		mSeekBar = (SeekBar) findViewById(R.id.seek);
		mProgressText = (TextView) findViewById(R.id.progress);
		mTrackingText = (TextView) findViewById(R.id.tracking);
		
		mSeekBar.setOnSeekBarChangeListener(new SeekBarListener());
    }
    
    class SeekBarListener implements OnSeekBarChangeListener{

    	/**
    	 * 在拖动中--即值在改变
    	 */
		public void onProgressChanged(SeekBar seekBar, int progress,
				boolean fromUser) {
			//progress为当前数值的大小
			mProgressText.setText("当前值:" + progress);
		}
		/**
    	 * 在拖动中会调用此方法
    	 */
		public void onStartTrackingTouch(SeekBar seekBar) {
			mTrackingText.setText("SeekBar正在调节");
		}
		/**
    	 * 停止拖动
    	 */
		public void onStopTrackingTouch(SeekBar seekBar) {
			mTrackingText.setText("SeekBar停止调节");
		}
    	
    }
}
 

 运行结果:


Android29_SeekBar和RatingBar_第4张图片

 

二、RatingBar

       1.在布局文件当中声明RatingBar

              android:nubStars="5":指明共多少颗星星

              android:stepSize="1.0":指明每次前进多少颗星星

 


        2.定义一个OnRatingBarChangeListener

 

class RatingBarListener implements OnRatingBarChangeListener{
	public void onRatingChanged(RatingBar ratingBar, float rating,
			boolean fromUser) {
		System.out.println(rating);
	}
}

 运行结果:

Android29_SeekBar和RatingBar_第5张图片
 输出结果:

Android29_SeekBar和RatingBar_第6张图片

 

  • Android29_SeekBar和RatingBar_第7张图片
  • 大小: 31.9 KB
  • Android29_SeekBar和RatingBar_第8张图片
  • 大小: 14.8 KB
  • Android29_SeekBar和RatingBar_第9张图片
  • 大小: 35.5 KB
  • Android29_SeekBar和RatingBar_第10张图片
  • 大小: 12.9 KB
  • Android29_SeekBar和RatingBar_第11张图片
  • 大小: 12.8 KB
  • Android29_SeekBar和RatingBar_第12张图片
  • 大小: 19.7 KB
  • 查看图片附件

你可能感兴趣的:(Android,SeekBar,RatingBar)