你好,我是新来的,
我想在图像上绘制图像,并希望将其保存为单个图像(一个图像比另一个图像小)。 请告诉我怎么做。
我尝试过RelativeLayout使用imagview在图像上绘制图像,并能够为较小的图像实现拖放。但我无法将它们保存为单个图像。 任何帮助或想法都会很棒????????
由于 薰衣草
答案 0 :(得分:6)
您可以使用画布来完成。
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);
答案 1 :(得分:1)
您可能需要查看layer-list,因为这似乎是您正在寻找的内容。
答案 2 :(得分:0)
礼貌:Draw Image/Text on Image in Android
阅读上面的文章,对在Android中使用Bitmaps进行了很好的解释。基本上要在Android中编写/编辑图像,首先需要将其转换为可变位图。一旦有了Bitmap,就可以轻松地从中构建Canvas,然后在Canvas上绘制任何内容(文本,线条,图像)。 Canvas基本上可以作为绘图板。
下面的代码片段展示了如何使用相同的画布概念在丛林图像上绘制dino图像
/* 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);