En fait je veux selectionner une partie d'une image, je dois pouvoir modifier la position et la taille du cadre de sélection.
J'ai finalement utilisé la solution de dessiner 4 rectangles autour de la partie à sélectionner.
Pour ceux que ça intéresse voici le code de la classe que j'ai créé:
public class TrimRectView extends ImageView {
public TrimRectView(Context context) {
super(context);
}
private int mTotalWidth, mTotalHeight, mStartX, mStartY, mSelectionWidth, mSelectionHeight;
public void updateRect(int startX, int startY, int sizeX, int sizeY, int totalWidth, int totalHeight) {
mStartX = startX;
mStartY = startY;
mSelectionWidth = sizeX;
mSelectionHeight = sizeY;
mTotalWidth = totalWidth;
mTotalHeight = totalHeight;
this.postInvalidate();
}
public void onDraw(Canvas c) {
Paint myPaint = new Paint();
//rectangle gauche
myPaint.setColor(Color.argb(100, 0, 0, 0));
c.drawRect(0, 0, mStartX, mTotalHeight, myPaint);
//rectangle haut
myPaint.setColor(Color.argb(100, 0, 0, 0));
c.drawRect(mStartX, 0, mTotalWidth, mStartY, myPaint);
//rectangle droite
myPaint.setColor(Color.argb(100, 0, 0, 0));
c.drawRect(mStartX+mSelectionWidth, mStartY, mTotalHeight, mTotalHeight, myPaint);
//rectangle bas
myPaint.setColor(Color.argb(100, 0, 0, 0));
c.drawRect(mStartX, mStartY+mSelectionHeight, mStartX+mSelectionWidth, mTotalHeight, myPaint);
}
}
ensuite il suffit d'ajouter un capteur d'évènement de type "onTouchListener" en appelant updateRect()...
ça fonctionne très bien !
Merci quand même !