можно ли манипулировать изображением с помощью холста - PullRequest
0 голосов
/ 26 июля 2010

Можно ли манипулировать изображениями с помощью холста?Как мы можем получить изображение на холсте?

@Override 
protected void onDraw(Canvas canvas) {


   Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
   Bitmap mBitmap = bitmap.copy(bitmap.getConfig(), true);
   canvas = new Canvas(mBitmap);
   Matrix matrix = new Matrix();

   canvas.drawBitmap(mBitmap, matrix, mPaint);
}

Я не могу увидеть изображение на экране.canvas.drawBitmap () не требуется, так как я использую конструктор и передаю mBitmap.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2010

Вы не должны делать это в вашем методе onDraw.Попробуйте создать ImageView, который должен отображать изображение, а затем установить растровое изображение с помощью setImageBitmap (bitmap)

В общем, вы делаете что-то неправильно в своем коде.

  1. Загрузка изображения каждый раз, когда что-то должно быть нарисовано на экране, сильно замедлит работу вашего приложения.Попробуйте загрузить изображение только один раз, а затем просто отредактируйте его и установите для изображения.
  2. Вы назначаете новый Canvas для полученного вами параметра.Но это ничего не изменит на экране.Думайте об этом, как будто кто-то ставит перед вами бумагу и говорит: «Пожалуйста, напишите ваше сообщение на бумаге».Теперь вы берете другой чистый лист бумаги и пишете на нем.Но другой человек знает только о своей газете и будет использовать эту бумагу, чтобы прочитать ваше сообщение.
0 голосов
/ 26 июля 2010

Да, вы можете, но вы не «получаете изображение на холст», холст - это просто интерфейс для рисования на растровое изображение.Для этого просто создайте Canvas и дайте ссылку на ваше изменяемое растровое изображение:

Canvas c = new Canvas (myBitmap);

Очень просто:)

...