Пользовательская панель рейтинга Android, показывающая значение по умолчанию

Я работаю над этим экраном обратной связи, где мне нужно реализовать пользовательскую панель рейтинга. Проведя небольшое исследование, я обнаружил, что этот метод — именно то, что мне нужно. На данный момент я получаю две разные полосы рейтинга в накладывающейся манере. Я хочу скрыть панель рейтинга по умолчанию, предоставляемую Android, и я знаю, почему это происходит. Я не могу скрыть панель рейтинга. Я пробовал getProgressDrawable().setVisible(false, false), но это бесполезно.

Вот код моего переопределенного метода onDraw(Canvas c);:

@Override
    protected synchronized void onDraw(Canvas canvas)
    {
        int stars = getNumStars();
        float rating = getRating();
        try
        {
            bitmapWidth = getWidth() / stars;
        }
        catch (Exception e)
        {
            bitmapWidth = getWidth();
        }
        float x = 0;

        for (int i = 0; i < stars; i++)
        {
            Bitmap bitmap;
            Resources res = getResources();
            Paint paint = new Paint();

            if ((int) rating > i)
            {
                bitmap = BitmapFactory.decodeResource(res, R.drawable.filled_star);
            }
            else
            {
                bitmap = BitmapFactory.decodeResource(res, R.drawable.unfilled_star);
            }
            Bitmap scaled = Bitmap.createScaledBitmap(bitmap, getHeight(), getHeight(), true);
            canvas.drawBitmap(scaled, x, 0, paint);
            paint.setColor(Color.WHITE);
            paint.setTextSize(20f);
            canvas.drawText(String.valueOf(i), x+33, 83, paint);
            canvas.save();
            x += bitmapWidth;
        }



        super.onDraw(canvas);
    }  

Я просто хочу скрыть панель рейтинга Android по умолчанию, наложенную на мою пользовательскую панель рейтинга.

Спасибо!


person Syed Danish Ali    schedule 27.04.2017    source источник


Ответы (1)


макет.xml

  <RatingBar
                android:id="@+id/rating"
                style="@style/RatingBar"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:isIndicator="true"
                android:max="5"
                android:numStars="5"
                android:stepSize="0.5"/>

стили.xml

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

рейтингбар.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/icon_empty" />
        <item android:id="@+android:id/secondaryProgress"
              android:drawable="@drawable/icon_empty" />
        <item android:id="@+android:id/progress"
              android:drawable="@drawable/icon_full" />
    </layer-list>
person 배준모    schedule 27.04.2017
comment
Я тоже пробовал это. Но теперь он просто показывает две полоски рейтинга с моими звездами_заполненными и звездными_незаполненными. - person Syed Danish Ali; 27.04.2017