IllegalArgumentException: Breite und Höhe müssen beim Laden der Bitmap aus der Ansicht> 0 sein

Ich versuche, auf einem ImageViewTouch zu zeichnen, einer Bibliothek, die das Zoomen im Handumdrehen ermöglicht. Ich kann mit Canvas über das Bild zeichnen, aber wenn ich das Bild zoome, verschwindet die Zeichnung.

Dazu versuche ich, die Ansicht in eine Bitmap zu konvertieren und die ImageBitmap für dieselbe Ansicht festzulegen. Hier ist der Code:

mImage.setDrawPath(true);
mImage.setImageBitmap(loadBitmapFromView(mImage)); 

public static Bitmap loadBitmapFromView(View v) {
        Bitmap b = Bitmap.createBitmap( v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888);                
        Canvas c = new Canvas(b);
        v.layout(0, 0, v.getWidth(), v.getHeight());
        v.draw(c);
        return b;
}

Wenn ich das tue, erhalte ich den folgenden Protokollfehler:

07-11 21:13:41.567: E/AndroidRuntime(20056): java.lang.IllegalArgumentException: width and height must be > 0
07-11 21:13:41.567: E/AndroidRuntime(20056):    at android.graphics.Bitmap.createBitmap(Bitmap.java:638)
07-11 21:13:41.567: E/AndroidRuntime(20056):    at android.graphics.Bitmap.createBitmap(Bitmap.java:620)

Wenn ich das entferneloadBitmapFromView Aufruf der Zeichnung erscheint normalerweise über dem Bild. Wenn ich versuche, mit dem Bild zu interagieren (z. B. hinein- oder herauszuzoomen), verschwindet die Zeichnung und es verbleibt nur das Hintergrundbild, bei dem es sich um ein Bild handelt.

--- EDIT ---

Hier ist noch ein Code nach demloadBitmapFromView Anruf. Der Fall ist: Ich habe einen Radiogruppen-Listener und wenn ich ein Optionsfeld ankreuze, muss ich das Bild laden und einige mögliche Zeichnungen darüber zeichnen. Dann versuche ich, alles (das Bild und die Zeichnungen) in nur zu konvertieren eine Bitmap.

Hier ist der andere Teil des Codes:

bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);

Danach zeichne ich alles, was ich zeichnen muss, und versuche, die Ansicht mit der von mir gezeigten loadImageBitmap-Methode in eine Bitmap umzuwandeln.

dasdecodeSampledBitmapFromResource Methode, die ich von diesem Link auf Android-Entwickler bekamhttp://developer.android.com/training/displaying-bitmaps/load-bitmap.html

Antworten auf die Frage(5)

Ihre Antwort auf die Frage