日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android中RatingBar的自定义效果

發布時間:2025/4/16 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android中RatingBar的自定义效果 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android中RatingBar的自定義效果

有時候android系統提供給我們的ratingbar效果并不達到我們的要求,這個時候就可以自定義自己喜歡的ratingbar。


從上面的效果可以看出,自定義這樣的組件,需要兩張圖片:

?。一張用來未選擇的效果,一張用來顯示的效果。那還要中間那種一半是未選擇一半時選擇的呢?其實當你寫好這樣的組件后,系統就會自動幫你自動解析生成那種效果。


整個項目布局:



我們一步一步來分析:


??

Xml代碼? <RatingBar??
?
style="@style/roomRatingBar"??
?
android:layout_marginLeft="10dip"?
?
android:layout_width="wrap_content" android:layout_height="wrap_content"?
?
android:id="@+id/room_ratingbar"></RatingBar>?

?

從上面可看出自定義ratingbar主要是這段style="@style/roomRatingBar" ,好我們去找到這段代碼

/styles.xml

Xml代碼? <?xml version="1.0" encoding="utf-8"?>?
?
<resources>?
?
<style name="roomRatingBar" parent="@android:style/Widget.RatingBar">?
?
<item name="android:progressDrawable">@drawable/room_rating_bar</item>?
?
<item name="android:minHeight">16dip</item>?
?
<item name="android:maxHeight">16dip</item>?
?
</style>?
?
</resources>?

?

上面的意思是繼承@android:style/Widget.RatingBar,重寫android:progressDrawable屬性,換成我們自定義@drawable/room_rating_bar文件。

控制該組件的最大和最小高度。好我們繼續去找這自定義文件@drawable/room_rating_bar。

/ room_rating_bar.xml

Xml代碼? <?xml version="1.0" encoding="utf-8"?>?
?
<!--
?
This is the rating bar drawable that is used to show a room num.
?
-->?
?
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">?
?
<item android:id="@+android:id/background"?
?
android:drawable="@drawable/room_unselect"></item>?
?
<item android:id="@+android:id/secondaryProgress"?
?
android:drawable="@drawable/room_unselect"></item>?
?
<item android:id="@+android:id/progress"?
?
android:drawable="@drawable/room_select"></item>?
?
</layer-list>?

?

好了,越來越接近真相了。這里就是定義組件的背景圖片、一級進度背景圖片和二級進度背景圖片(里面這些id都是系統的id,當系統運行到這里時會自動根據這個id去重畫組件)

講到這里大概明白怎么用了。其實很多組件都可以通過這樣的方法來使用,但如果明白整個過程,那以后做起其他來都至少有一點得心應手的感覺吧。好!下來我也只能說說我的見解,因為本人對android的理解也不是很深入。

前提是下載android的源碼, 這里我就不講了。在android framework\base\core\res\res\values(android framework是我保存源碼的目錄)目錄下找到styles.xml文件,該文件是android系統運行時所要加載的文件,里面保存了所有組件的樣 式定義。在里面你可以找到<style name="Widget.RatingBar">我們之前繼承的其中一個組件樣式,也有其他<style name="Widget.RatingBar.Small">、<style name="Widget.SeekBar">、<style name="Widget.ProgressBar.Small">等等。這樣里面的屬性我們繼承后就可以被重寫成其他的了。

摘自? ygc973797893的專欄

轉載于:https://blog.51cto.com/5282981/946330

總結

以上是生活随笔為你收集整理的Android中RatingBar的自定义效果的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。