2014-10-15 3 views
3

У меня есть растровое изображение размером 200x200 пикселей. Я хочу, чтобы нарисовать верхний левый угол 50x50px моего растрового изображения на холсте в точке с координатами 100,100 с шириной и высотой 50px, используя:Android: Canvas drawBitmap?

drawBitmap(Bitmap bitmap, Rect src, Rect dst, Paint paint) 

Это то, что я пробовал:

drawBitmap(myBitmap, new Rect(0,0,50,50), new Rect(100,100,150,150) , null); 

Что я делаю неправильно?


От developer.android.com:

Параметры

  • растрового Растрового быть обращен

  • Src Может быть пустыми. Подмножество точечного рисунка, который можно сделать

  • Dst прямоугольника растровым будет масштабироваться/переводится, чтобы вписаться в

  • краски Может быть пустыми. Краска, используемая для рисования растрового изображения

Что не хватает в моем коде? Спасибо!

+1

Что случилось с результатом, полученным от этого кода? – Kai

+0

Результат является частью изображения, но изменен, но не из части, которую я хотел – EllS1

+0

Является ли код, который я написал правильно? – EllS1

ответ

1

Вам нужно изменить свои прямоугольники. Это связано с тем, что, как описано в документации, первым прямоугольником является подмножество растрового изображения, которое вы хотите нарисовать, второе - масштабирование/перевод, так что в основном размер целевого ничья (50x50)

Так что он должен выглядеть например:

drawBitmap(myBitmap, new Rect(100,100,150,150), new Rect(0,0,50,50) , null); 
Смежные вопросы