Android RatingBar渐变可绘制

时间:2016-07-14 17:04:51

标签: android textview android-custom-view ratingbar ontouch

有没有办法可以为我的评级视图设置渐变可绘制如果我需要在onDraw方法中绘制那些“ZZZZZ”而不是在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);
    }

另外,我不确定是否可以使用spannable渐变,因为我移动手指但是我知道我可以使用paint对象进行渐变。出于测试目的,我做了 -

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

我还没有实现onTouch事件。但在进入onTouch事件之前,我正试图找到所有可能性。我正在寻找的东西

  • 可以跨越的文本具有渐变(当前查看动态跨越)
  • 评级视图可以自定义绘图(绘图从小到大,触摸渐变

期望

enter image description here

到目前为止的结果

enter image description here

1 个答案:

答案 0 :(得分:0)

扩展RatingBar可能是个更好的主意。只需使用自定义drawable创建新样式,并将该样式添加到RatingBar的style属性。

可以找到更详细的方法here