2012-10-12 7 views
6

Ich habe eine Bitmap image.For diese zuzuschneiden ich verwendeBitmap.createBitmap (Bitmap Quelle, int x, int y, int width, int height) zurückgeben falsch Bitmap

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565); 
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100); 
bitmap.recycle(); 
Canvas canvas = new Canvas(result); 
imgView.draw(canvas); 

Aber es schneidet den Boden und rechts von der Bitmap.Top und Left Teil der Bitmap in der Ausgabe existieren. Das bedeutet X und Y-Position haben keine Auswirkungen.

Ich bin nach einer guten Dokumentation gesucht. Aber ich konnte nicht.

Vielen Dank im Voraus

Was ist das Problem hier und wie zu lösen?

Antwort

10

Grundsätzlich entsteht Ihr Problem aus der Tatsache, dass Sie eine Bitmap erstellen. Du legst nichts hinein. Sie erstellen dann eine kleinere Bitmap und dann rendern Sie eine ImageView für diese kleinere Bitmap.

Dies schneidet die unteren 100 Pixel und rechts 20 Pixel.

Sie müssen die große Bitmap erstellen. Fügen Sie der Bitmap die Imageview-Daten hinzu. Dann ändere die Größe.

sollte der folgende Code arbeiten:

Bitmap bitmap = Bitmap.createBitmap(imgView.getWidth(),imgView.getHeight(), Bitmap.Config.RGB_565); 
Canvas canvas = new Canvas(bitmap); 
imgView.draw(canvas); 
Bitmap result =Bitmap.createBitmap(bitmap,imgView.getLeft()+10, imgView.getTop()+50, imgView.getWidth()-20, imgView.getHeight()-100); 
bitmap.recycle(); 
+0

Vielen you.It gut funktioniert. –

+0

danke Chef. es funktioniert gut. – basheer

Verwandte Themen