У меня проблема. Мне нужно объединить две картинки разных размеров (рисунки). Идея состоит в том, чтобы иметь изображение кого-то (загруженного динамически) размером 100x100 пикселей и иметь прозрачный фон, который больше (например, 100x120). В последних 20 пикселях у меня есть стрелка, которая должна указывать на местоположение человека на карте. Тогда я думаю, что мог бы сделать что-то вроде этого:
Drawable[] layers = new Drawable[2];
layers[0] = res.getDrawable(R.drawable.background_img);
layers[1] = res.getDrawable(R.drawable.icon);
LayerDrawable layerDrawable = new LayerDrawable(layers);
Но это просто накладывает одно изображение на другое, игнорируя их границы.
Спасибо заранее,
Vaidas
- ОБНОВЛЕНИЕ: наконец-то решена проблема. Работает как шарм:)
private Drawable createPersonDrawable(Bitmap personImage)
{
Bitmap resultingBitmap = Bitmap.createBitmap(drawableWidth,
drawableHeight, Bitmap.Config.ARGB_8888);
Canvas comboCanvas = new Canvas(resultingBitmap);
comboCanvas.drawBitmap(personImage, 0, 0, null);
// Get the bottom part of the image from resources
Bitmap bottomPart = BitmapFactory.decodeResource(getResources(),
R.drawable.person_map_icon_bottom);
comboCanvas.drawBitmap(bottomPart, 0, drawablePersonImageHeight, null);
comboCanvas.save();
return new BitmapDrawable(resultingBitmap);
}
Я нашел описание здесь: http://www.jondev.net/articles/Combining_2_Images_in_Android_using_Canvas