Градиент Android RatingBar рисуется

Есть ли способ, которым я могу сделать градиент для моего просмотра рейтинга, с которым я согласен, если мне нужно нарисовать эти «ZZZZZ» в методе onDraw вместо определения в xml, потому что они должны быть меньше или больше. Поэтому вместо расширения класса RatingBar я попытался расширить класс textview и планировал использовать событие onTouch (Move), чтобы получить рейтинг от 1 до 5. Поправьте меня, если вы думаете, что расширение класса RatingBar было бы еще лучшей идеей. До сих пор мне удавалось получить другой размер текста, используя -

 for (int i = 0; i < text.length(); i++) {
        SpannableStringBuilder sb;
        fontSize += incrementFontBy;
        paint.setTextSize(fontSize);
        setTypeface(typeFace);
        sb.setSpan(new AbsoluteSizeSpan(fontSize), i, character.length, 0);
        setText(sb);
    }

Кроме того, я не уверен, возможен ли плавный градиент, когда я двигаю пальцем, но я знаю, что могу иметь градиент, используя объект рисования. Для целей тестирования я сделал -

paint.setShader(new LinearGradient(0,0,0,getPaint().getTextSize()/2,Color.BLACK,Color.GREEN, Shader.TileMode.CLAMP));

Я еще не реализовал событие onTouch. Но я пытаюсь найти все свои возможности, прежде чем попаду в событие onTouch. Вещи, которые я ищу

  • Может ли расширяемый текст иметь градиент (в настоящее время рассматривается Dynamic Spannable)
  • Может ли представление рейтинга иметь собственный рисунок (рисунок от маленького до крупного и градиентный при касании).

Ожидание

введите здесь описание изображения

Результат на данный момент

введите здесь описание изображения


person Alex    schedule 14.07.2016    source источник


Ответы (1)


Расширение RatingBar, вероятно, было бы лучшей идеей. Просто создайте новый стиль с вашими пользовательскими чертежами и добавьте этот стиль в атрибут стиля RatingBar.

Более подробный подход можно найти здесь.

person Harsh Pandey    schedule 14.07.2016