2016-11-08 14 views
0
アンドロイド

にカスタムイメージを追加するとき、私はアンドロイドプロジェクトにカスタムレーティングバーを追加するには、スタックオーバーフローの答えを追っている、ここにある:https://stackoverflow.com/a/32828726/5909396評価バーが大型になり、カットオフ

念のI私のコードを投稿しています。

<?xml version="1.0" encoding="UTF-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_pressed="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/ic_emptyStar" /> 

<item android:state_focused="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/ic_emptyStar" /> 

<item android:state_selected="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/ic_emptyStar" /> 

<item android:drawable="@drawable/ic_emptyStar" /> 

:その後、私は描画可能なフォルダにもratingbar_empty.xmlとratingbar_filled.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/ratingbar_empty" /> 
    <item android:id="@android:id/secondaryProgress" 
      android:drawable="@drawable/ratingbar_empty" /> 
    <item android:id="@android:id/progress" 
      android:drawable="@drawable/ratingbar_filled" /> 

は、最初に私は描画可能なフォルダにratingBar.xmlを作成しました
<?xml version="1.0" encoding="UTF-8" ?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

<item android:state_pressed="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/ic_fullStar" /> 

<item android:state_focused="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/ic_fullStar" /> 

<item android:state_selected="true" 
    android:state_window_focused="true" 
    android:drawable="@drawable/ic_fullStar" /> 

<item android:drawable="@drawable/ic_fullStar" /> 

そして私はのstyles.xml

<style name="CustomRatingBar" parent="@android:style/Widget.RatingBar"> 
    <item name="android:progressDrawable">@drawable/ratingbar</item> 
    <item name="android:minHeight">50dp</item> 
    <item name="android:maxHeight">50dp</item> 
</style> 

にカスタムスタイルを作成し、最終的に私は、レイアウトにratingBarを追加しました。私が構造化したのは、評価バーが相対レイアウト内にあり、相対レイアウト内にテキストビューがあり、評価バーの上にあります(評価がない場合はテキストビューが表示されます)。

<RelativeLayout 
      android:layout_width="0dip" 
      android:layout_height="wrap_content" 
      android:layout_weight="0.4" 
      android:orientation="vertical" 
      android:layout_gravity="center"> 
      <RatingBar 
       android:id="@+id/ratingRestaurant" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       style="@style/CustomRatingBar" 
       android:numStars="5" 
       android:stepSize="0.1" 
       android:isIndicator="true" 
       android:max="5" 
       android:progress="3" 
       android:layout_centerVertical="true" 
       android:progressTint="#ffe4b331" /> 
      <TextView 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="No rating available" 
       android:textColor="@android:color/white" 
       android:textSize="11dp" 
       android:id="@+id/textViewNoRatingAvailable" /> 
</RelativeLayout> 

私はシミュレータ上でアプリケーションを実行すると、星は本当に大きく、カットオフされているような以下:

enter image description here

5つ星があるようになっています。どうすればこの問題を解決できますか?

答えて

0

カスタマイズ可能な評価バーを使用してライブラリを作成しました。完全な空のアイコンとそのサイズを設定できます。これがあなたに役立つことを願っています

これは、使用方法の一例であるが、非常に簡単です:

<com.kabuki5.logicalratingbar.CustomRatingBar 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     app:clickable="true" 
     app:iconSize="58dp" 
     app:imageEmpty="@drawable/ic_heart_empty" 
     app:imageFull="@drawable/ic_heart_full" 
     app:initRating="5" 
     app:maxItems="5" /> 

また、あなたが変化値コールバックに乗るためにリスナーを設定することができます。 (https://stackoverflow.com/help/answering)[解答]と[ハウツー-解答](HTTPS://

Logical Rating Bar

0

は、これが最初に参照してください

android:layout_width="wrap_content" 
android:layout_height="0dp" 
+0

を設定しましたstackoverflow.com/help/how-to-answer) –

関連する問題