如何在android中的图像上添加多个图层

时间:2012-12-09 18:19:28

标签: android android-imageview

我想在应用程序中创建一个(地图的)图像并以编程方式添加 它上面的一些层(占位符,路径等......) 我认为类似Photoshop的方法可能会有所帮助,但我不知道从哪里开始。 教程或文档的任何简单示例/链接都很有用:)

由于

1 个答案:

答案 0 :(得分:2)

我给你一个简单的方法,你可以建立:

  • 创建一个空位图finalBitmap。这将是所有图层合成的最终目的地。
  • 创建Canvas以绘制到finalBitmap。此画布将用于将所有图层绘制到最终位图中。
  • 使用地图图片创建Bitmap。使用画布将其绘制到finalBitmap。这将是第1层。
  • 使用相同的方法放置标记,路线等。那些将是第2,3层等。

例子代码:

//The empty Bitmap
finalBitmap = Bitmap.createBitmap(width, height , Bitmap.Config.ARGB_8888);
canvas = new Canvas(finalBitmap );
imageView.setImageBitmap(finalBitmap );


//Create the map image bitmap
Config config = Config.RGB_565;
Options options = new Options();
options.inPreferredConfig = config;
InputStream in = null;
Bitmap bitmap = null;
try {
        in = new FileInputStream(fMapImage);
        bitmap = BitmapFactory.decodeStream(in);
        if (bitmap == null)
            throw new RuntimeException("Couldn't load bitmap from asset :" + fMapImage.getAbsolutePath());
    } catch (IOException e) {
        throw new RuntimeException("Couldn't load bitmap from asset :" + fMapImage.getAbsolutePath());
    } finally {
        if (in != null) {
            try {
                in.close();
            } catch (IOException e) {
            }
        }
}


//Draw the map image bitmap
Rect dst = new Rect(pt00.x, pt00.y, ptMM.x, ptMM.y);
canvas.drawBitmap(bitmap, null, dst, null);

//Here draw whatever else you want (markers, routes, etc.)

此致