如何拍摄谷歌地图的快照?

时间:2011-04-14 06:41:25

标签: android

我需要拍摄谷歌地图的快照并保存在本地数据库中。请帮我拍一下谷歌地图的快照。

谢谢, Monali

4 个答案:

答案 0 :(得分:2)

您不能在应用内部制作打印屏幕,除非手机已植根(没有相应的代码)。

然而,您可以通过模拟器制作打印屏幕,但这不是问题。

为了完整起见:
仿真器打印屏幕
您必须通过USB连接手机,转到Eclipse中的Debug透视图,选择“Devices”选项卡,在列表中选择您的设备,然后单击“Screen Capture”图标。

答案 1 :(得分:0)

您可以看到此库http://code.google.com/p/android-screenshot-library/。它在后台运行,可以让你在没有root的情况下制作截图。

答案 2 :(得分:0)

在按钮点击事件中定义功能;

Button btnCap = (Button) findViewById(R.id.btnTakeScreenshot);
btnCap.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        try {
            CaptureMapScreen();
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }
});

这是一个函数CaptureMapScreen()

public void CaptureMapScreen() 
{
SnapshotReadyCallback callback = new SnapshotReadyCallback() {
        Bitmap bitmap;

        @Override
        public void onSnapshotReady(Bitmap snapshot) {
            // TODO Auto-generated method stub
            bitmap = snapshot;
            try {
                FileOutputStream out = new FileOutputStream("/mnt/sdcard/"
                    + "MyMapScreen" + System.currentTimeMillis()
                    + ".png");

                // above "/mnt ..... png" => is a storage path (where image will be stored) + name of image you can customize as per your Requirement

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

    myMap.snapshot(callback);

    // myMap is object of GoogleMap +> GoogleMap myMap;
    // which is initialized in onCreate() => 
    // myMap = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map_pass_home_call)).getMap();
}

答案 3 :(得分:0)

 public void getSnapShot(){
    GoogleMap.SnapshotReadyCallback callback=new GoogleMap.SnapshotReadyCallback() {
        @Override
        public void onSnapshotReady(Bitmap bitmap) {

        }
    };
    google_Map.snapshot(callback);
}