進度條,拖動條,星級評分條

進度條ProgressBar的功能和用法

  • ProgressBar概述
    進度條是UI界面中的一種非常實用的組件,通常向用戶顯示某個耗時操作完成的百分比。因此進度條可以動態(tài)地顯示進度,避免長時間地執(zhí)行某個耗時操作時,讓用戶感覺程序失去了響應(yīng),從而更好地提高用戶界面的友好性
  • Android支持幾種風(fēng)格的進度條,通過style屬性可以為ProgressBar指定風(fēng)格,該屬性支持如下幾個屬性值。
    1.style=“?android:attr/progressBarStyle” 圓形進度條
    2.style=“?android:attr/progressBarStyleHorizontal” 水平進度條
    3.style=“?android:attr/progressBarStyleInverse” 圓形普通大小進度條
    4.style=“?android:attr/progressBarStyleLarge” 圓形大進度條
    5.style=“?android:attr/progressBarStyleLargeInverse” 圓形大進度條
    6.style=“?android:attr/progressBarStyleSmall” 小圓形進度條
    7.style=“?android:attr/progressBarStyleSmallInverse” 普通大圓形小進度條
    8.style=“?android:attr/progressBarStyleSmallTitle” 帶標(biāo)題的圓形小進度條
  • ProgressBar支持如下表的.xml屬性
    1.android:max:設(shè)置該進度條的最大值
    2.android:progress設(shè)置該進度條的已完成進度值
    3. android:indeterminate該屬性設(shè)置為true, 設(shè)置進度條不精確顯示進度
    4.android:indeterminateDrawable設(shè)置繪制不顯示進度的Drawable對象
  • ProgressBar的重要方法
    1.getMax():返回這個進度條的范圍的上限
    2.getProgress():返回進度值 setProgress():
    getSecondaryProgress():返回次要進度值 setSecondaryProgress():
    incrementProgressBy(int diff):指定增加的進度,正數(shù)為增加進度,負(fù)數(shù)為減去進度
    isIndeterminate():判斷進度條是否在不精確顯示進度模式下
    setIndeterminate(boolean indeterminate):設(shè)置進度條不精確顯示模式
    setVisibility(int v):設(shè)置該進度條是否可視

ProgressBar代碼

//在開發(fā)時,當(dāng)需要下載或上傳文件時,需要讓用戶知道當(dāng)前的進度,就需要使用進度條
//xml中使用
<ProgressBar android:id="@+id/pb_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:progress="20"
android:secondaryProgress="50"
style="@android:style/Widget.ProgressBar.Horizontal"
android:max="100"/>
//減少或增加進度,值為整數(shù)就是增加,負(fù)數(shù)就是減少
pb_show.incrementProgressBy(-5);//第一進度
pb_show.incrementSecondaryProgressBy(-3);//第二進度

水平進度條.jpg
標(biāo)題圓形進度條.jpg
大號圓形進度條.jpg
小號圓形進度條.jpg

拖動條SeekBar的功能和用法

拖動條概述

  • 拖動條和進度條非常相似,只是進度條采用顏色填充來表明進度完成的程度,而拖動條則通過滑塊的位置來標(biāo)識數(shù)值----而且拖動條允許用戶拖動滑塊來改變值,因此拖動條通常用于對系統(tǒng)的某種數(shù)值進行調(diào)節(jié),比如調(diào)節(jié)音量等。
  • SeekBar的主要應(yīng)用在音樂播放,視頻播放,或者對音量調(diào)節(jié),屏幕亮度調(diào)節(jié)的一些操作中,讓用戶可以手動的去改變相應(yīng)的值。


    seekbar的重要屬性和方法.jpg

SeekBar代碼

//在開發(fā)過程中,音量及音視頻播放的時候,
//需要快速定位到某個地方,這時候可以使用拖動條來實現(xiàn)
//xml中定義拖動條來使用
<SeekBar
android:id="@+id/sb_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:max="255" //最大進度,是音視頻的最大時長
android:progress="50" //當(dāng)前定位到的播放位置/>
//拖動SeekBar,進行監(jiān)聽,調(diào)整當(dāng)前位置
//為seekBar設(shè)置監(jiān)聽事件
sb_id.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
//停止拖動
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
Log.e("--Main--", "--------停止拖動-------");
}
//開始拖動
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
Log.e("--Main--", "--------開始拖動-------");
}
//拖動中
@Override
public void onProgressChanged(SeekBar seekBar,
int progress, boolean fromUser) {
Log.e("--Main--", "--------拖動中:progress="+progress);
iv_head.setAlpha(progress);//修改圖片的透明度
tv_show.setText(String.valueOf(progress));//修改文本顯示的內(nèi)容
}
});

星級評分條RatingBar 的功能和用法

  • RatingBar概述
    星級評分條與拖動條十分相似,它們甚至有相同的父類:AbsSeekBar。實際上星級評分條與拖動條的用法、功能都十分接近:它們都允許用戶通過拖動來改變進度。RatingBar與SeekBar最大區(qū)別在于: RatingBar通過星星來表示進度。
  • 常見 xml屬性:
    android:isIndicator:設(shè)置該星級評分條是否允許用戶改變(true為不允許)
    android:numStarts:設(shè)置該星級評分條總共有多少個星級
    android:rating:設(shè)置該星級評分條默認(rèn)的星級
    android:stepSize:設(shè)置每次最少需要改變多少個星級
    --RatingBar 實現(xiàn)方法
<RatingBar 
android:id="@+id/room_ratingbar" android:layout_width="wrap_content" android:layout_height="wrap_content" 
android:numStars="5“
 android:rating="4" 
android:layout_marginLeft="10dp" > 
</RatingBar>
  • 設(shè)置監(jiān)聽
bar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {
             
            @Override
            public void onRatingChanged(RatingBar arg0, float arg1, boolean arg2) {
                Toast.makeText(MainActivity.this,"" + arg1*20, Toast.LENGTH_SHORT).show();
            }
        });
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容