2017-07-28 1 views
0

Je travaille sur l'éditeur d'image qui permet à l'utilisateur de choisir une image dans la galerie, puis de dessiner des objets sur l'image.Dessiner dans la vue Image personnalisée

J'ai créé un ImageView personnalisé et appelé setImageBitmap avec l'image choisie. Le problème est que l'image est placée au centre de l'écran et quand j'essaie de dessiner disons une forme rectangle (0, 0) à (100, 100), elle est dessinée à partir du coin supérieur gauche de l'écran n'est pas l'image.

De plus, la largeur et la hauteur du bitmap choisi sont différentes de la largeur et de la hauteur du canevas de la méthode onDraw() dans le fichier ImageView personnalisé. Comment cela se fait-il?

+0

régler les attributs android: scaleType = "fitXY", android: layout_width = "match_parent" android: layout_height = "match_parent" – huk

+0

Je ne veux pas mettre à l'échelle l'image et j'ai besoin d'un moyen de dessiner sur l'image directement partout c'est (au centre ou en haut). –

Répondre

0

Après avoir choisi l'image, faire bitmap de l'image sélectionnée et essayez ci-dessous le code:

int currentBitmapWidth = bitMap.getWidth(); 
int currentBitmapHeight = bitMap.getHeight(); 

int ivWidth = imageView.getWidth(); 
int ivHeight = imageView.getHeight(); 
int newWidth = ivWidth; 

newHeight = (int) Math.floor((double) currentBitmapHeight *((double) 
new_width/(double) currentBitmapWidth)); 

Bitmap newbitMap = Bitmap.createScaledBitmap(bitMap, newWidth, 
newHeight, true); 

imageView.setImageBitmap(newbitMap) 

Cela va régler l'image à la taille de votre imageView.