• android学习---SeekBar和RatingBar


    SeekBar 拖动条:拖动条和滚动栏类似,当是拖动条能够拖动滑块改变进度

    RatingBar 星级评分条:星级评分条与拖动条相似


    SeekBar特有的xml属性

    android:thumb    指定一个Arawable对象,作为之定义滑块



    RatingBar特有的xml属性

    android:isIndicator   是否同意用户改变(true为不同意改动)

    android:numStars   共同拥有多少个星级

    android:rating   默认的星级

    android:stepSize   每次至少改变多少个星级



    为了知道改变的进度而做对应的操作,我们须要加入监听

    SeekBar 的监听 OnSeekBarChangeListener

    RatingBar的监听 OnRatingBarChangeListener


    以下我们通过实例来熟悉它们

    (1)编写布局文件   activity_main.xml

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/linearLayout" 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
        
        <ImageView 
            android:id="@+id/imgView1"
            android:layout_width="120dp"
            android:layout_height="100dp"
            android:src="@drawable/ic_launcher"/>
        <SeekBar 
            android:id="@+id/seekBar"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:thumb="@drawable/ic_launcher"
            android:max="255"
            android:progress="255"/>
          <ImageView 
            android:id="@+id/imgView2"
            android:layout_width="120dp"
            android:layout_height="100dp"
            android:src="@drawable/img01"/>
          <RatingBar 
              android:id="@+id/reatingBar"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:max="255"
              android:progress="255"
              android:rating="5"
              android:stepSize="0.5"
              android:numStars="5"/>
        
    </LinearLayout>
    

    (2)编写 MainActivity.java

    package com.example.bar;
    
    import android.annotation.TargetApi;
    import android.app.Activity;
    import android.os.Build;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.Menu;
    import android.widget.ImageView;
    import android.widget.RatingBar;
    import android.widget.RatingBar.OnRatingBarChangeListener;
    import android.widget.SeekBar;
    import android.widget.SeekBar.OnSeekBarChangeListener;
    
    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    public class MainActivity extends Activity {
    	
    	private ImageView imgViewSB = null; //定义ImageView
    	private ImageView imgViewRB = null;
    	private SeekBar seekBar = null;  //定义SeekBar
    	private RatingBar ratingBar = null; //定义RatingBar
    
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		
    		//布局组件
    		this.imgViewSB = (ImageView) findViewById(R.id.imgView1);
    		this.imgViewRB = (ImageView) findViewById(R.id.imgView2);
    		this.seekBar = (SeekBar) findViewById(R.id.seekBar);
    		this.ratingBar = (RatingBar) findViewById(R.id.reatingBar);
    		
    		//seekBar设置监听,改变图片透明度
    		this.seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
    			
    			@Override
    			public void onStopTrackingTouch(SeekBar seekBar) {
    				Log.i("onStopTrackingTouch", "停止拖动触发的方法");
    				
    			}
    			
    			@Override
    			public void onStartTrackingTouch(SeekBar seekBar) {
    				Log.i("onStartTrackingTouch", "開始拖动触发的方法");
    				
    			}
    			
    			
    			/**
    			 * seekBar: SeekBar对象
    			 * progress:拖动条的进度
    			 * fromUser:是否用户手动改变
    			 */
    			@Override
    			public void onProgressChanged(SeekBar seekBar, int progress,
    					boolean fromUser) {
    				imgViewSB.setAlpha(progress);  //设置图片的透明度
    				Log.i("onProgressChanged", "拖动滑块位置发生改变时触发的方法");
    				
    			}
    		});
    		
    		//ratingBar设置监听,改变图片透明度
    		this.ratingBar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
    			
    			
    			/**
    			 * ratingBar:RatingBar对象
    			 * rating :星级的大小
    			 * fromUser:是否用户手动改变
    			 */
    			@Override
    			public void onRatingChanged(RatingBar ratingBar, float rating,
    					boolean fromUser) {
    				imgViewRB.setAlpha((int)(rating*255/5));
    				
    			}
    		});
    		
    		
    	}
    
    	@Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		// Inflate the menu; this adds items to the action bar if it is present.
    		getMenuInflater().inflate(R.menu.main, menu);
    		return true;
    	}
    
    }
    

    同意之后,效果例如以下:


  • 相关阅读:
    Android仿网易client实现抽屉式拖拉菜单界面
    使用SRVCTL时报错:error while loading shared libraries
    permission denied for this window type
    pytest文档22-fixture详细介绍-作为参数传入,error和failed区别
    pytest文档22-fixture详细介绍-作为参数传入,error和failed区别
    pytest文档22-fixture详细介绍-作为参数传入,error和failed区别
    xml文件错误
    xml文件错误
    xml文件错误
    mysql replace into 的使用情况
  • 原文地址:https://www.cnblogs.com/yxwkf/p/4095266.html
Copyright © 2020-2023  润新知