画布绘制方法不在画布上绘制

时间:2019-08-09 13:46:27

标签: java android canvas android-recyclerview item-decoration

我目前正在使用Android中的RecyclerView。每个RecyclerView项目都包含一个LinearLayout,其中包含一个我使用Canvas编写的条形图的自定义视图。我的RecyclerView中有7个项目,并且试图添加ItemDecoration以显示项目指示符,例如so

绘制方法(drawLine,drawRect,drawCircle)似乎都不起作用。

画布drawRGB()drawARGB()方法可以正常工作。 我尝试使用纯色drawRect(0, 0, viewWidth, viewHeight, mPaint);,但效果也不佳。

我的装饰代码与上面的链接完全相同。这是我绘制标尺的函数-

public class CirclePagerIndicatorDecoration extends RecyclerView.ItemDecoration {

    // Other code ...

    /**
    * Draws decoration indicators for inactive elements.
    */
    private void drawInactiveIndicators(Canvas c, float startX, float posY, int count){

        mPaint.setColor(colorInactive);

        // width of indicator INCLUDING padding
        final float itemWidth = mIndicatorItemLength + mIndicatorItemPadding;

        float start = startX;

        for(int i = 0; i < count; i++){
            // draw indicator for every item
            c.drawLine(start, posY, start + mIndicatorItemLength, posY, mPaint);
            start += itemWidth;
        }

}

我已经通过调试手动验证了所有值,它们似乎与预期的一样。我还尝试过绘制具有恒定值的任意圆形,矩形和文本,它们似乎也不起作用。

这是我的RecyclerView创建代码-

mAdapter = new liveLocationAdapter(returnedJSON, locationTimeTextView, locationStatusTextView, weekdaySpinner);
recyclerView.setAdapter(mAdapter);
recyclerView.addItemDecoration(new CirclePagerIndicatorDecoration());
SnapHelperSingle snapHelperSingle = new SnapHelperSingle();
snapHelperSingle.attachToRecyclerView(recyclerView);

这里是没有任何装饰的视图外观 RecyclerView without ItemDecoration

这是装饰enter image description heredrawARGB()的外观

任何帮助表示赞赏。谢谢。

0 个答案:

没有答案