Android でカスタマイズされた評価バーを作成しています。私の要件はRatingBar
、画像のサイズが大きくなっても、星のサイズをレイアウト互換にする必要があるということです。星の画像が非表示になります。これは私が試したXMLコードです
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<LinearLayout
android:id="@+id/linear1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:background="#800080"
android:layout_centerInParent="true"
android:width="180dp"
android:height="180dp"
>
<RatingBar
android:id="@+id/rateCheck"
android:background="#008000"
style="@style/CustomRatingBar"
android:layout_width="100dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="182dp"
android:max="5"
android:rating="5"
android:stepSize="1"
android:numStars="5"/>
</LinearLayout>
</RelativeLayout>
スタイルは次のとおり @drawable/custom_ratingbar 16dip 16dip customratingbar.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/custom_ratingbar_empty" />
<item android:id="@+android:id/secondaryProgress"
android:drawable="@drawable/custom_ratingbar_empty" />
<item android:id="@+android:id/progress"
android:drawable="@drawable/custom_ratingbar_filled" />
</layer-list>
カスタムレーティングbaemptyは
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/star_off" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/star_off" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/star_off" />
<item android:drawable="@drawable/star_off" />
</selector>
カスタムバーフィルドは
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_window_focused="true"
android:drawable="@drawable/star_on" />
<item android:state_focused="true"
android:state_window_focused="true"
android:drawable="@drawable/star_on" />
<item android:state_selected="true"
android:state_window_focused="true"
android:drawable="@drawable/star_on" />
<item android:drawable="@drawable/star_on" />
</selector>