J'essaie de dessiner un arrière-plan personnalisé sur mon CustomView qui étend LinearLayout.Problèmes de dessin d'arrière-plan personnalisé sur Canvas (Android)
Voici ma méthode onDraw():
int mPositionX = 0;
int mPositionY = 0;
final int viewWidth = getMeasuredWidth();
final int viewHeight = getMeasuredHeight();
mPath.moveTo(mPositionX, mPositionY);
mPositionX = viewWidth;
mPath.lineTo(mPositionX, mPositionY);
mPositionY = viewHeight;
mPath.lineTo(mPositionX, mPositionY);
//draw bottom triangles
for(int i = 0; mPositionX >= 0; i++){
mPositionX -= HALF_BORDER_STEP;
mPositionY = i%2 == 0 ? mPositionY - BORDER_HEIGHT : mPositionY + BORDER_HEIGHT;
mPath.lineTo(mPositionX, mPositionY);
}
// move to left bottom corner
mPositionX = 0;
mPath.lineTo(mPositionX,mPositionY);
mPath.close();
canvas.clipPath(mPath);
canvas.drawPath(mPath, mCheckPaint);
super.draw(canvas);
J'ai 2 problèmes. Tout d'abord, mon arrière-plan personnalisé ne s'affiche pas si je ne définirai pas d'arrière-plan, donc j'ai fait android: background = "@ color/transparent" dans mon xml.
Deuxième problème est que, après avoir ajouté quelques vues via .addView(View view)
, mon fond disparaît.
J'ai essayé d'appeler invalidate()
mais toujours rien.
Qu'est-ce que je fais de mal?