編輯:Android開發實例
首先看看效果:
有時候android系統提供給我們的ratingbar效果並不達到我們的要求,這個時候就可以自定義自己喜歡的ratingbar。
從上面的效果可以看出,自定義這樣的組件,需要兩張圖片: 。一張用來未選擇的效果,一張用來顯示的效果。那還要中間那種一半是未選擇一半時選擇的呢?其實當你寫好這樣的組件後,系統就會自動幫你自動解析生成那種效果。
整個項目布局:
我們一步一步來分析:
<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 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 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">等等。這樣裡面的屬性我們繼承後就可以被重寫成其他的了。
項目:
testRatingBar.zip
在手機衛士之前的版本升級的對話框中: 有的用戶暫時不想更新,沒有點擊“稍後再說”,而是選擇點擊回退按鍵,那麼這時候的邏輯應
本文實例講述了Android編程使用Fragment界面向下跳轉並一級級返回的實現方法。分享給大家供大家參考,具體如下: 1.首先貼上項目結構圖: 2.先添加一
Android應用程序可以在許多不同地區的許多設備上運行。為了使應用程序更具交互性,應用程序應該處理以適合應用程序將要使用的語言環境方面的文字,數字,文件等。在本章中,我
Fragment的主要意義就是提供與Activity綁定的生命周期回調。 Fragment不一定要向Activity的視圖層級中添加View. 當某個模塊需要獲得