2012-01-18 2 views
0

Je cherche à transformer une image en utilisant une matrice sur la méthode onDraw d'une classe personnalisée j'ai créé qui s'étend ImageView par exemple,Android: transformer l'image en utilisant une matrice

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.save(); 
    canvas.setMatrix(imageMatrix); 
    canvas.drawBitmap(((BitmapDrawable)mIcon).getBitmap(), imageMatrix, null); 
    canvas.restore(); 
} 

Cependant, ce que je codé ci-dessus pas vraiment travailler. Comment puis-je appliquer l'imageMatrix sur la toile? Merci!

Répondre

2

Essayez d'appeler Drawable.draw(Canvas) méthode:

@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.save(); 
    canvas.setMatrix(imageMatrix); 
    ((BitmapDrawable)mIcon).draw(canvas); 
    canvas.restore(); 
} 
-1

Tout ce que vous avez fait est bon, juste mettre le super appel à la dernière, il y a coz où toute la peinture se fait ...

@Override 
public void onDraw(Canvas canvas) { 
    canvas.setMatrix(imageMatrix); 
    super.onDraw(canvas); 
} 
+0

Cela peut rejeter tout le dessin fait auparavant. –

Questions connexes