绘制阴影线

问题描述 投票:0回答:3

现在我画线时没有阴影:

override fun onDraw(canvas: Canvas, parent: RecyclerView, state: RecyclerView.State) {
        val dividerStart = parent.paddingStart
        val dividerEnd = parent.width - parent.paddingEnd
        val endIndex = parent.adapter?.itemCount ?: 0
        for (index in 0 until endIndex) {
            val currentChild = parent.getChildAt(index)
            if (needDrawBottomDelimiter(parent, currentChild)) {
                val topOfCurrentView = currentChild.top
                val startX = dividerStart.toFloat()
                val topY = topOfCurrentView.toFloat() - rectHeight
                val endX = dividerEnd.toFloat()
                val bottomY = topOfCurrentView.toFloat()
                canvas.drawRect(startX, topY, endX, bottomY, spacePaint)
                canvas.drawLine(startX, bottomY, endX, bottomY, dividerPaint)
            }
        }
    }

我知道什么可以帮助我着色器,但是不知道我如何在这里使用它。

在这里让我知道如何使用shader

android canvas kotlin
3个回答
0
投票
在您的布局中,您可以执行以下操作:

<View android:layout_width="match_parent" android:layout_height="0.5dp" android:elevation="5dp" android:background="@color/colorBlack" />


0
投票
您只需尝试以下方法:

Paint paint; paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setShadowLayer(12, 0, 0, Color.YELLOW); // Important for certain APIs setLayerType(LAYER_TYPE_SOFTWARE, paint); @Override protected void onDraw(Canvas canvas) { canvas.drawRect(20, 20, 100, 100, paint); }


0
投票
我用comment deepak kumar解决了问题>

dividerPaint.setShadowLayer(12F, 0F, 0F, Color.YELLOW) setLayerType(parent, LAYER_TYPE_SOFTWARE, dividerPaint)

© www.soinside.com 2019 - 2024. All rights reserved.