仅显示Android中Google地图展示的一部分

时间:2014-03-04 06:54:13

标签: android google-maps

我已经创建了一个显示地图的应用。但我想只显示地图的一部分,当我点击地图的任何部分时,我的应用程序应缩放到我点击的位置,并仅存储放大的地图部分(不是整个地图)图像文件,以便我以后可以访问它。

在Android ADT捆绑Android v2中进行我的应用。我可以显示整个地图,也可以缩放到我点击的地图部分,但我想捕捉缩放的部分并存储为图像文件。

1 个答案:

答案 0 :(得分:0)

您可以使用地图的快照方法,您必须实施callback方法并将其应用于地图对象,这是一个示例:

public void captureMapScreen() {
    SnapshotReadyCallback callback = new SnapshotReadyCallback() {

        @Override
        public void onSnapshotReady(Bitmap snapshot) {
            try {
                mView.setDrawingCacheEnabled(true);
                Bitmap backBitmap = mView.getDrawingCache();
                Bitmap bmOverlay = Bitmap.createBitmap(
                        backBitmap.getWidth(), backBitmap.getHeight(),
                        backBitmap.getConfig());
                Canvas canvas = new Canvas(bmOverlay);
                canvas.drawBitmap(snapshot, new Matrix(), null);
                canvas.drawBitmap(backBitmap, 0, 0, null);
                FileOutputStream out = new FileOutputStream(
                        Environment.getExternalStorageDirectory()
                                + "/MapScreenShot"
                                + System.currentTimeMillis() + ".png");

                bmOverlay.compress(Bitmap.CompressFormat.PNG, 90, out);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    };

    mMap.snapshot(callback);

}