#java #android
#java #Android
Вопрос:
Привет, ребята, я новичок в этом,
Я хочу нарисовать изображение поверх изображения и хочу сохранить его как одно изображение (одно изображение меньше другого). Пожалуйста, скажите мне, как это сделать.
Я попробовал RelativeLayout для рисования изображения поверх изображения с помощью imagview и смог реализовать перетаскивание для меньшего изображения. но я не могу сохранить их как одно изображение. Любая помощь или идея были бы замечательными????????
Спасибо Davender
Комментарии:
1. для этого нужно использовать canvas
Ответ №1:
Вы можете сделать это с помощью canvas.
Bitmap bitmap = BitmapFactory.decodeResource(this
.getResources(), R.drawable.first);
/* set other image top of the first icon */
Bitmap bitmapStar = BitmapFactory.decodeResource(this
.getResources(), R.drawable.second);
Bitmap bmOverlay = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Config.ARGB_8888);
Canvas canvas = new Canvas(bmOverlay);
canvas.drawARGB(0x00, 0, 0, 0);
canvas.drawBitmap(bitmap, 0, 0, null);
canvas.drawBitmap(bitmapStar, 0, 0, null);
BitmapDrawable dr = new BitmapDrawable(bmOverlay);
dr.setBounds(0, 0, dr.getIntrinsicWidth(), dr.getIntrinsicHeight());
imageView.setImageDrawable(dr);
Ответ №2:
Возможно, вы захотите ознакомиться с layer-list, поскольку это, похоже, то, что вы ищете.
Ответ №3:
Предоставлено: Нарисуйте изображение / текст на изображении в Android
Прочитанная выше статья дает хорошее объяснение работы с растровыми изображениями в Android. В принципе, для записи / редактирования изображения в Android сначала нужно преобразовать его в изменяемое растровое изображение. Получив растровое изображение, вы можете легко создать из него холст, а затем нарисовать на нем что угодно (текст, линию, изображение). Canvas в основном действует как доска для рисования.
Приведенный ниже фрагмент кода показывает, как я рисую изображение динозавра поверх изображения джунглей, используя ту же концепцию canvas
/* This jungle.png will be used as the canvas to draw an another image over it. Hence we make it mutable using the copy API
as shown below
*/
Bitmap jungle = BitmapFactory.decodeResource(getResources(), R.drawable.jungle).copy(Bitmap.Config.ARGB_8888,true);
// Decoding the dinosaur image resource into a Bitmap
Bitmap dino= BitmapFactory.decodeResource(getResources(), R.drawable.dino);
// Here we construct the canvas with the specified bitmap to draw onto
Canvas canvas=new Canvas(jungle);
/*Here we draw the dinosaur image on the canvas using the drawBitmap API.
drawBitmap takes in four parameters
1 . The Bitmap to draw
2. X co-ordinate to draw from
3. Y co ordinate to draw from
4. Paint object to define style
*/
canvas.drawBitmap(dino,(jungle.getWidth())/4,250,new Paint());
imageView.setImageBitmap(jungle);