Я пытаюсь использовать ImageViewTouch, библиотеку, которая позволяет масштабировать масштабирование. Я могу рисовать изображение с помощью Canvas, но когда я увеличиваю изображение, рисунок исчезает.
Для этого я пытаюсь преобразовать представление в растровое изображение и установить для этого же представления значениеImageBitmap. Здесь код:
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;
}
Когда я это сделаю, я получаю следующую ошибку журнала:
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)
Если я удаляю вызов loadBitmapFromView
, обычно рисунок отображается над изображением. Когда я пытаюсь выполнить какое-либо взаимодействие с изображением (например, масштабирование или выключение), рисунок исчезает, восстанавливая только фоновое изображение, которое представляет собой изображение.
--- EDIT ---
Вот еще один код, помещенный после вызова loadBitmapFromView
. Дело в том, что у меня есть радиослушатель, и когда я проверяю какой-то переключатель, мне приходится загружать изображение и рисовать над ним рисунки. Затем я пытаюсь преобразовать все (изображение и чертежи) в одно растровое изображение.
Здесь находится другая часть кода:
bitmap = BitmapUtils.decodeSampledBitmapFromResource(root + DefinesAndroid.CAMINHO_SHOPPINGS_SDCARD + nomeImagemAtual, size.x, size.y);
mImage.setImageBitmap(bitmap);
После этого я рисую все, что мне нужно, и пытаюсь преобразовать представление в растровое изображение, используя метод loadImageBitmap, который я показал.
the decodeSampledBitmapFromResource
метод, который я получил из этой ссылки на разработчиков Android http://developer.android.com/training/displaying-bitmaps/load-bitmap.html