En ce moment je dessine la ligne sans ombre:
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) } } }
3 Réponses :
Dans votre présentation, vous pouvez faire:
<View android:layout_width="match_parent" android:layout_height="0.5dp" android:elevation="5dp" android:background="@color/colorBlack" />
J'ai besoin de définir par programme de manière programmatique pour toute la vue
Vous venez d'essayer la méthode ci-dessous:
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); }
Peut-être peut-être que cela peut aider Stackoverflow.com/questions/18099465/...
@deepakkumar thx, c'est résolu mon problème;)
Dupliquer possible de créer une ombre autour d'une forme dessinée en toile?