UI组件之ProgressBar及其子类(二)SeekBar拖动条和RatingBar星级评分条的使用
生活随笔
收集整理的這篇文章主要介紹了
UI组件之ProgressBar及其子类(二)SeekBar拖动条和RatingBar星级评分条的使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
拖動條采用拖動滑塊的位置來表示數值
SeekBar的常用xml屬性值:
重要的android:thumb制定一個Drawable對象,改變滑塊外觀
通過滑塊來改變圖片的透明度:
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/root"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="300dp"android:src="@drawable/lijiang" /> <!-- android:thumb 是滑塊的圖片, android:progressDrawable是滑條的圖片 --><SeekBarandroid:id="@+id/seekBar1"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_marginTop="20dp"android:max="255"android:progress="255"android:thumb="@drawable/ic_launcher" /><TextViewandroid:id="@+id/textView1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="25dp" /><TextViewandroid:id="@+id/textView2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="25dp" /></LinearLayout>
MainActivity.java
package com.example.seekbartest;import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; import android.widget.SeekBar; import android.widget.SeekBar.OnSeekBarChangeListener; import android.widget.TextView;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ImageView image =(ImageView) findViewById(R.id.imageView1);SeekBar seekbar=(SeekBar) findViewById(R.id.seekBar1);final TextView textView1 = (TextView) this.findViewById(R.id.textView1);final TextView textView2 = (TextView) this.findViewById(R.id.textView2);//設置拖動條的狀態改變監聽器seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){//當拖動條的滑塊位置發生改變時觸發該方法@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {// TODO Auto-generated method stubimage.setAlpha(progress);//設置圖片透明度textView1.setText("當前值:"+progress);}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubtextView2.setText("拖動中...");}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {// TODO Auto-generated method stubtextView2.setText("拖動完畢");}});}@Overridepublic 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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);} }
自定義拖動條比較好,留著以后借鑒: http://blog.csdn.net/imdxt1986/article/details/7609164
星級評分條的常用xml屬性:
android:isIndicator:設置該評分條是否允許用戶改變(true為不允許修改)
android:numStars:設置總共有多少個星級
android:rating設置星級評分條默認的星級
android:stepSize設置沒吃最少需要改變多少個星級,0.5半個星星,1就是1個星星
使用星級評分改變圖片透明度:
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/root"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><ImageViewandroid:id="@+id/imageView1"android:layout_width="wrap_content"android:layout_height="300dp"android:src="@drawable/lijiang" /><RatingBarandroid:id="@+id/ratingBar1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:max="255"android:numStars="6"android:progress="255"android:stepSize="0.5" /></LinearLayout>
MainActivity.java
package com.example.ratingbartest; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageView; import android.widget.RatingBar; import android.widget.RatingBar.OnRatingBarChangeListener; import android.widget.SeekBar;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final ImageView image =(ImageView) findViewById(R.id.imageView1);RatingBar bar=(RatingBar) findViewById(R.id.ratingBar1);//設置星級評論條狀態改變監聽器bar.setOnRatingBarChangeListener(new OnRatingBarChangeListener(){@Overridepublic void onRatingChanged(RatingBar ratingBar, float rating,boolean fromUser) {// TODO Auto-generated method stubimage.setAlpha((int)(rating*255/6));//設置圖片透明度}});}@Overridepublic 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;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}return super.onOptionsItemSelected(item);} }
總結
以上是生活随笔為你收集整理的UI组件之ProgressBar及其子类(二)SeekBar拖动条和RatingBar星级评分条的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: UI组件之 ProgressBar及其子
- 下一篇: Android使用Intent启动Ser