我正在开发一个在一堆图像上画线的应用程序。为了选择这些图像,我有一个单选组,每当用户单击单选按钮时,图像都会加载所有自己的绘图。
在我的收音机听众中,我有以下代码:
bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
mImage.setDrawLines(true);
mImage.setImageBitmap(loadBitmapFromView(mImage));
decodeSampledBitmapFromResource
我从android开发人员的这个链接得到的方法(它更有效地加载位图) http://developer.android.com/training/displaying-bitmaps/load-bitmap.html
这是我用来获取视图位图的方法
public static Bitmap loadBitmapFromView(View v) {
Bitmap b = Bitmap.createBitmap( v.getLayoutParams().width, v.getLayoutParams().height, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(b);
v.layout(0, 0, v.getLayoutParams().width, v.getLayoutParams().height);
v.draw(c);
return b;
}
我正在设置图像位图,mImage
因为我使用的是 ImageViewTouch 库(它可以在 ImageView 上进行缩放),如果我不这样做,所有的画布绘图都会通过图像上的任何交互(如放大/出去)。
错误日志如下
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)
我几乎可以肯定这个错误正在发生,因为当我调用getBitmapFromView
方法时图像位图没有完全加载。
我怎么知道视图何时完全加载?