2016-08-15 5 views
-2

Ich versuche, ein Bild zu drehen. Die Rotation funktioniert perfekt, aber wenn ich das gedrehte Bild zurückbekomme, bekomme ich etwas Leerstelle. Was muss ich tun, um diese Leerstelle zu entfernen?Drehen Sie benutzerdefinierte Ansicht in Android

Ich habe diesen Code versucht:

public static Bitmap RotateBitmap(Bitmap source, float angle) { 
     Matrix matrix = new Matrix(); 
     matrix.setRotate(90, 0, 0); 
     matrix.postTranslate(source.getHeight(), 0); 
     // matrix.postRotate(angle); 
     return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); 
    } 

Utility.tempBitmap = RotateBitmap(Utility.tempBitmap, -90); 
+0

ich mein Problem gelöst, indem sie als pro meine Anforderung im Hinblick auf zu verändern. –

Antwort

2

ich mein Problem gelöst, indem einige Änderungen wie pro meine Anforderung im Hinblick Satz Bitmap zu ändern. mit diesem Code:

der Code i vor verwendet (Gibt mir white space)

public static Bitmap RotateBitmap(Bitmap source, float angle) { 
    Matrix matrix = new Matrix(); 
    matrix.setRotate(90, 0, 0); 
    matrix.postTranslate(source.getHeight(), 0); 
    // matrix.postRotate(angle); 
    return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true); 
} 

Utility.tempBitmap = RotateBitmap(Utility.tempBitmap, -90); 

Code-Lösung ist hier:

public int setBitmap(final Bitmap bitmap) 
{ 
changeBitmapContrastBrightness(1, 50); 
gapRect = new RectF(); 
dest = new Rect(); 
setBackgroundColor(Color.GRAY); 
if (bitmap.getWidth() > bitmap.getHeight()) { 
this.mbitmap = bitmap; 
invalidate(); 
return 0; 
} 
this.mbitmap = bitmap; 
invalidate(); 
return 1; 
Verwandte Themen