J'essaie de faire des pinceaux personnalisés pour mon application de peinture Android. J'ai commencé avec le code de Michael (found here) et j'ai réussi à obtenir des pinceaux .png et l'utiliser comme un bitmap et le redessiner. Cela fonctionne bien mais je ne peux pas changer la couleur. Essayé en utilisant le setcolorfilter
et colormatrixfilter
mais il ne semble pas fonctionner. Quelqu'un sait comment je peux faire ça?Couleurs personnalisées Android Brush
private Bitmap mBitmapBrush;
private Vector2 mBitmapBrushDimensions;
private List<Vector2> mPositions = new ArrayList<Vector2>(100);
private Paint mPanit;
public MyView(Context c) {
super(c);
mPath = new Path();
mBitmapPaint = new Paint(Paint.DITHER_FLAG);
mBitmapBrush = BitmapFactory.decodeResource(c.getResources(),R.drawable.brush1);
mBitmapBrushDimensions = new Vector2(mBitmapBrush.getWidth(), mBitmapBrush.getHeight());
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(0xFFAAAAAA);
canvas.drawBitmap(mBitmap, 0, 0, mBitmapPaint);
for (Vector2 pos : mPositions) {
canvas.drawBitmap(mBitmapBrush, pos.a, pos.b, mPanit);
}
invalidate();
}
Quand j'ai essayé d'utiliser la ColorMatrixFilter, la fonction .set donnait une erreur.
Ici l'exemple est donné pour ColorPicker: http://about-android.blogspot.in/2010/04/create-cutomized -color-picker-in.html –
Qu'est-ce qu'une erreur? Pouvons-nous voir vos tentatives d'utiliser 'ColourMatrixFilter' et' setColourFilter'? Aussi, vous ne semblez pas assigner quelque chose à 'mPanit', si vous ne le faites pas, alors vous pourriez voir' NullPointerException' – weston
Sorted l'erreur, fonctionne bien maintenant, avait oublié le ColorMatrixColorFilter. J'ai un autre problème maintenant. Est-il possible que je puisse peindre mon image .png comme un "chemin" pour obtenir un effet de pinceau plus lisse. le plus vite je fais glisser mon doigt je manque de pixels – user1472707