Sto provando a disegnare su ImageViewTouch, una libreria che consente lo zoom pizzico. Sono in grado di disegnare sull'immagine usando Canvas, ma quando zoomo l'immagine, il disegno scompare.IllegalArgumentException: larghezza e altezza devono essere> 0 durante il caricamento di Bitmap dalla vista
Per questo, sto provando a convertire la vista in una bitmap e impostare theImageBitmap per questa stessa vista. Ecco il codice:
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;
}
Quando faccio questo, ottengo il seguente errore di registro:
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)
Se rimuovo il loadBitmapFromView
chiamata il disegno normalmente appare sull'immagine. Quando provo a fare qualsiasi interazione con l'immagine (come lo zoom avanti o indietro), il disegno scompare, rimanendo solo l'immagine di sfondo, che è un'immagine.
--- EDIT ---
Ecco un po 'di codice inserito dopo la chiamata loadBitmapFromView
. Il caso è: ho un ascoltatore del gruppo radio e quando controllo qualche pulsante radio, devo caricare l'immagine e disegnare alcuni possibili disegni su di esso .. quindi sto cercando di convertire tutto (l'immagine e i disegni) in solo una bitmap.
Ecco la parte Ohter del codice:
bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
Dopo di che, ne traggo tutto quello che ho a disegnare e cercare di convertire la vista bitmap utilizzando il metodo loadImageBitmap ho mostrato.
il metodo decodeSampledBitmapFromResource
ho ricevuto da questo link su sviluppatori di Android http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
Ciao, puoi spiegarci un po 'di più Quindi, ovunque tu imposti la tua immagine bitmap, lo metti semplicemente in un' Runnable 'come sopra e la tua larghezza e altezza non erano più problemi? – Azurespot
Il codice funziona per tutte le API Android anziché per l'API 21 (lollipop). Sto lavorando con il dispositivo Samsung S4 ma anche questa riga di codice non mi è stata di aiuto. –