IllegalArgumentException: width e height devem ser> 0 ao carregar o Bitmap do View
Eu estou tentando desenhar em um ImageViewTouch, uma biblioteca que permite o zoom pinch. Eu sou capaz de desenhar sobre a imagem usando o Canvas, mas quando eu zoom a imagem, o desenho desaparece.
Para isso, estou tentando converter a exibição em um bitmap e definir oImageBitmap para essa mesma exibição. Aqui está o código:
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 faço isso, recebo o seguinte erro de log:
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 eu remover oloadBitmapFromView
chamar o desenho normalmente aparece sobre a imagem. Quando tento fazer qualquer interação com a imagem (como aumentar ou diminuir o zoom), o desenho desaparece, permanecendo apenas a imagem de fundo, que é uma imagem.
--- EDIT ---
Aqui está mais algum código colocado após oloadBitmapFromView
ligar. O caso é: Eu tenho um ouvinte de grupo de rádio e quando eu marquei algum botão de rádio, eu tenho que carregar a imagem e desenhar alguns possíveis desenhos sobre ela .. então eu estou tentando converter tudo (a imagem e os desenhos) em apenas um bitmap.
Aqui está a parte mais difícil do código:
bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
Depois disso, desenho tudo o que tenho para desenhar e tento converter a exibição para bitmap usando o método loadImageBitmap que mostrei.
adecodeSampledBitmapFromResource
método que eu tenho a partir deste link em desenvolvedores do Androidhttp://developer.android.com/training/displaying-bitmaps/load-bitmap.html