现在我画的线没有阴影:
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 。
答案 0 :(得分:0)
在您的布局中,您可以执行以下操作:
<View
android:layout_width="match_parent"
android:layout_height="0.5dp"
android:elevation="5dp"
android:background="@color/colorBlack" />
答案 1 :(得分: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);
}
答案 2 :(得分:0)
我用comment deepak kumar
dividerPaint.setShadowLayer(12F, 0F, 0F, Color.YELLOW)
setLayerType(parent, LAYER_TYPE_SOFTWARE, dividerPaint)