android自定義組合控件,android 評分條 RatingBar 使用及自定義

 2023-10-07 阅读 27 评论 0

摘要:一、先上效果圖片: ?? 第一個是自定義; ?? 第二個是原生的: ? 二、atingBar 介紹:   RatingBar是基于SeekBar和ProgressBar的擴展,用星型來顯示等級評定。使用RatingBar的默認大小時,用戶可以觸摸/拖動或使用鍵來設置評分࿰

一、先上效果圖片:

?? 第一個是自定義;

?? 第二個是原生的:

?

二、atingBar 介紹:

  RatingBar是基于SeekBarProgressBar的擴展,用星型來顯示等級評定。使用RatingBar的默認大小時,用戶可以觸摸/拖動或使用鍵來設置評分,它有兩種樣式(小風格用ratingBarStyleSmall,大風格用ratingBarStyleIndicator),其中大的只適合指示,不適合于用戶交互。

  當使用可以支持用戶交互的RatingBar時,無論將控件(widgets)放在它的左邊還是右邊都是不合適的。

  只有當布局的寬被設置為wrap?content時,設置的星星數量(通過函數setNumStars(int)或者在XML的布局文件中定義)將顯示出來(如果設置為另一種布局寬的話,后果無法預知)。

  次級進度一般不應該被修改,因為他僅僅是被當作星型部分內部的填充背景。

三、嵌套類

  接口:RatingBar.OnRatingBarChangeListener

  一個回調函數,當星級進度改變時修改客戶端的星級。

四、XML屬性

屬性名稱

描述

Android:isIndicator

RatingBar是否是一個指示器(用戶無法進行更改)

android:numStars

顯示的星型數量必須是一個整形值,像“100”。

android:rating

默認的評分,必須是浮點類型,像“1.2”。

android:stepSize

評分的步長必須是浮點類型,像“1.2”。

?

  五、公共方法

?

public int getNumStars ()

    返回顯示的星型數量

      返回值

????????????????  顯示的星型數量

?

  public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

返回值

監聽器(可能為空)監聽評分改變事件

?

  public float getRating ()

  獲取當前的評分(填充的星型的數量)

  返回值

  當前的評分

?

  public float getStepSize ()

  獲取評分條的步長

  返回值

  步長

?

  public boolean isIndicator ()

返回值

????????????????判斷當前的評分條是否僅僅是一個指示器(注:即能否被修改)

?

  public void setIsIndicator (boolean isIndicator)

  設置當前的評分條是否僅僅是一個指示器(這樣用戶就不能進行修改操作了)

  參數

  isIndicator?????? Bool值,是否是一個指示器

?

  public synchronized void setMax (int max)

  設置評分等級的范圍,從0max

  參數

  max?????????評分條最大范圍。

?

  public void setNumStars (int numStars)

  設置顯示的星型的數量。為了能夠正常顯示它們,建議將當前widget的布局寬度設置為

wrap content

  參數

  numStars?????????星型的數量

?

  public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

  設置當評分等級發生改變時回調的監聽器

  參數

  listener ?監聽器

?

  public void setRating (float rating)

  設置分數(星型的數量)

  參數

  rating??????設置的分數

?

  public void setStepSize (float stepSize)

  設置當前評分條的步長(step size

  參數

  stepSize?評分條的步進。例如:如果想要半個星星,它的值為0.5

四、XML屬性

屬性名稱

描述

Android:isIndicator

RatingBar是否是一個指示器(用戶無法進行更改)

android:numStars

顯示的星型數量必須是一個整形值,像“100”。

android:rating

默認的評分,必須是浮點類型,像“1.2”。

android:stepSize

評分的步長必須是浮點類型,像“1.2”。

?

  五、公共方法

?

public int getNumStars ()

    返回顯示的星型數量

      返回值

????????????????  顯示的星型數量

?

  public RatingBar.OnRatingBarChangeListener getOnRatingBarChangeListener ()

返回值

監聽器(可能為空)監聽評分改變事件

?

  public float getRating ()

  獲取當前的評分(填充的星型的數量)

  返回值

  當前的評分

?

  public float getStepSize ()

  獲取評分條的步長

  返回值

  步長

?

  public boolean isIndicator ()

返回值

????????????????判斷當前的評分條是否僅僅是一個指示器(注:即能否被修改)

?

  public void setIsIndicator (boolean isIndicator)

  設置當前的評分條是否僅僅是一個指示器(這樣用戶就不能進行修改操作了)

  參數

  isIndicator?????? Bool值,是否是一個指示器

?

  public synchronized void setMax (int max)

  設置評分等級的范圍,從0max

  參數

  max?????????評分條最大范圍。

?

  public void setNumStars (int numStars)

  設置顯示的星型的數量。為了能夠正常顯示它們,建議將當前widget的布局寬度設置為

wrap content

  參數

  numStars?????????星型的數量

?

  public void setOnRatingBarChangeListener (RatingBar.OnRatingBarChangeListener listener)

  設置當評分等級發生改變時回調的監聽器

  參數

  listener ?監聽器

?

  public void setRating (float rating)

  設置分數(星型的數量)

  參數

  rating??????設置的分數

?

  public void setStepSize (float stepSize)

  設置當前評分條的步長(step size

  參數

  stepSize?評分條的步進。例如:如果想要半個星星,它的值為0.5

六、android評分條RatingBar自定義設置

sdk23 RatingBar為評分條控件,默認效果為若干個灰色的星星,如果想將其換成其他自定義圖片就要自定義它的style。首先是布局文件:

    <RatingBarandroid:id="@+id/ratingone"android:numStars="5"  設置星的個數,注意下邊的寬度要設置為wrap_contentandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:rating="3"   設置默認選中星的個數android:stepSize="0.5"  設置評分的間隔,每次增加或者減少多少android:isIndicator="false"/> 設置 不允許用戶進行評分操作,flase 表示允許

?其中android:numStars="5"設置顯示的星星數量為5; android:rating="5"設置選中的數量為5,也就是全部選中

android:isIndicator="true"設置評分條只顯示結果無法通過點擊改變選中狀態。

然后在res/values目錄下建立styles.xml文件 代碼:

<pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'宋體';font-size:12.0pt;"><span style="color:#e8bf6a;"><style </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"myRatingBarStyle" </span><span style="color:#bababa;">parent=</span><span style="color:#6a8759;">"@android:style/Widget.RatingBar"</span><span style="color:#e8bf6a;">>
</span><span style="color:#e8bf6a;">    <item </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"android:progressDrawable"</span><span style="color:#e8bf6a;">></span>@drawable/my_rating_bar<span style="color:#e8bf6a;"></item>
</span><span style="color:#e8bf6a;">    <item </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"android:minHeight"</span><span style="color:#e8bf6a;">></span>16dp<span style="color:#e8bf6a;"></item>
</span><span style="color:#e8bf6a;">    <item </span><span style="color:#bababa;">name=</span><span style="color:#6a8759;">"android:maxHeight"</span><span style="color:#e8bf6a;">></span>16dp<span style="color:#e8bf6a;"></item>
</span><span style="color:#e8bf6a;"></style></span>
 

android:progressDrawable為評分條圖案。接下來在res/drawable目錄下建立my_rating_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"android:drawable="@drawable/star1"></item><item android:id="@android:id/secondaryProgress"android:drawable="@drawable/star1"></item><item android:id="@android:id/progress"android:drawable="@drawable/star2"></item>
</layer-list>

?<item android:id="@+android:id/progress"?android:drawable="@drawable/rating_show" />為設置評分圖案為? rating_show.png,也就是選中時的圖案;

<item android:id="@+android:id/background"?android:drawable="@drawable/rating" />? 為設置背景圖案為 rating.png,也就是為選中時的圖案。


Demo 下載

轉載于:https://www.cnblogs.com/sharecenter/p/5620971.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/5/125950.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息