2016-11-08 2 views
0

Я последовал ответ на переполнение стека, чтобы добавить пользовательский рейтинг бар для андроид проекта, здесь: https://stackoverflow.com/a/32828726/5909396рейтинг бар становится большим и отсечка при добавлении пользовательских изображений в андроида

Только в случае, если я я отправляю свой код.

Сначала я создал ratingBar.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_empty.xml и ratingbar_filled.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_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" /> 

<?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

Там должны быть пять звезд. Как я могу исправить эту проблему?

ответ

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" /> 

Также вы можете установить слушатель, чтобы получить на значение изменения обратного вызова.

Logical Rating Bar

0

набор

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

Пожалуйста Смотрите это первая: [отвечая] (https://stackoverflow.com/help/answering) и [как к ответу] (https: // stackoverflow.com/help/how-to-answer) –