Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android基本控件學習-----SeekBar&RatingBar,android基本控件

android基本控件學習-----SeekBar&RatingBar,android基本控件

編輯:關於android開發

android基本控件學習-----SeekBar&RatingBar,android基本控件


SeekBar(拖動條)和RatingBar(星級評分條)講解

一、SeekBar(拖動條)

(1)拖動條簡單理解就是可以拖動的線,這個對我們來講很常見,比如視頻播放或者音樂播放我們拖動播放的進度,下面總結一些常用屬性,很多屬性和ProgressBar是一樣的
,可以借鑒。

android:max:設置滑動條的最大值

android:progress:表示當前滑動條的值

android:secondaryProgress:二級滑動條

android:thumb:設置滑塊的drawable

同樣這些屬性也可以在Java中調用和設置

(2)SeeBar的監聽事件,對監聽事件我們應該不會陌生,在j2SE中有一個很重要的知識點監聽機制,同樣如果學過JavaScript裡面也有這樣概念叫事件。

onProgressChanged:進度條改變的時候會觸發

onStartTrackingTouch:安裝SeekBar的時候會觸發

OnStopTrackingTouch:放開SeekBar的時候會觸發

(3)簡單實例

<?xml version="1.0" encoding="utf-8"?><LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <SeekBar
        android:id="@+id/sb1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:max="100"
        android:thumb="@mipmap/ic_launcher"/>
    <TextView
        android:id="@+id/tv1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginTop="10dp"
        android:gravity="center_vertical"
        android:text="Seek的當前值是0"
        android:textSize="24sp"/>
</LinearLayout>

Java代碼

package com.example.test3;

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


public class MainActivity extends Activity{
    private  TextView textView;
    private SeekBar seekBar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        seekBar = (SeekBar) findViewById(R.id.sb1);
        textView = (TextView) findViewById(R.id.tv1);
        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
            @Override
            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
                textView.setText("SeekBar的當前值為" + i);
            }

            @Override
            public void onStartTrackingTouch(SeekBar seekBar) {
                Toast.makeText(MainActivity.this,"你按住了SeekBar",Toast.LENGTH_LONG).show();
            }

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                Toast.makeText(MainActivity.this,"你松開了SeekBar",Toast.LENGTH_LONG).show();
            }
        });
    }
}

(4)定制SeekBar

step1:在drawable定義一個stateListDrawable文件命名為sb_thumb.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="@mipmap/press"/>
    <item android:state_pressed="false" android:drawable="@mipmap/nomal"/>
</selector>

step2:在drawable定義一個layer-list,這時層疊圖片這裡是背景和當前進度條,命名為sb_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">
        <shape>
            <solid android:color="#FFFFD042" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#FF96E85D" />
            </shape>
        </clip>
    </item>
</layer-list>

step3:在布局文件中使用

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <SeekBar
        android:id="@+id/sb1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:max="100"
        android:progressDrawable="@drawable/sb_bar"
        android:thumb="@drawable/sb_thumb"/>
</LinearLayout>

效果圖:

二、RatingBar(星級評分條)

(1)星級評分條從這個名詞上面我們就很容易想象它的效果圖,在網上面買東西,經常就有店家讓我們給5星評價,下面總結一下常用的屬性:

android:isIndicator:是否用作指示,用戶無法更改,默認是false

android:numStars:顯示多少個星星,必須是整數

android:rating:默認是評分值,必須是浮點數

android:stepSize:評分每次增加的值,必須是浮點數style:樣式系統提供可選的有?android:attr/ratingBarStyleSmall和?android:attr/ratingBarStyleIndicator

(2)事件處理:只需要為RatinBar設置OnRatingBarChangeListener即可

(3)簡單實例

<?xml version="1.0" encoding="utf-8"?><LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
   <RatingBar
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:rating="3.5"/>
</LinearLayout>

(4)定制RatingBar

step1:和前面的SeekBar一樣編寫一個layer-list的文件:ratingbar_full.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="@mipmap/press"/>
    <item android:id="@android:id/progress" android:drawable="@mipmap/nomal"/>
</layer-list>

step2:在style文件中使用

step3:在布局文件使用定義的style

效果圖

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved