如何在图像上绘制图像并将其保存为android中的单个图像

时间:2011-04-07 06:09:11

标签: java android

你好,我是新来的,

我想在图像上绘制图像,并希望将其保存为单个图像(一个图像比另一个图像小)。 请告诉我怎么做。

我尝试过RelativeLayout使用imagview在图像上绘制图像,并能够为较小的图像实现拖放。但我无法将它们保存为单个图像。 任何帮助或想法都会很棒????????

由于 薰衣草

3 个答案:

答案 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);