Я проверил это на моем Motorola Droid, и он работал как задумано. Тем не менее, я обеспокоен тем, что это может быть:
- Ужасно неэффективно.
- Не гарантируется работа на всех телефонах Android.
Код:
/* Create a simple 100 by 100 bitmap */
Bitmap myBitmap = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
/* Create a canvas with which to draw on my bitmap */
Canvas myCanvas = new Canvas(myBitmap);
/* Draw a subset of my bitmap onto itself, with the source rectangle and destination rectangle overlapping */
Rect sourceRect = new Rect(10, 0, 99, 99);
Rect destRect = new Rect(0, 0, 89, 99);
myCanvas.drawBitmap(myBitmap, sourceRect, destRect, null);
Как я уже сказал, в моем тестировании это работало нормально, но при выполнении бит-блитов на других платформах я не всегда мог гарантировать безопасность, память и производительность для копирования одной области grpahics другой, когда источник и пункт назначения пересекаются.
Я бы приветствовал любое понимание этого.