Android: ScreenShot / ScreenCapture Code

Con estas líneas podemos hacer una captura de pantalla de nuestra aplicación Android. En este ejemplo la captura se guarda en la sdCard.

Del codigo, hay que tener en cuenta que se hace la captura de un View (viewToBeCaptured), que le tenemos que asignar el layout que queramos capturar.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.ideaknow.proves;
 
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
 
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
 
public class ScreenCaptureActivity extends Activity {
    private View viewToBeCaptured;
    private Button button;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        button = (Button) findViewById(R.id.button1);
 
        viewToBeCaptured = this.findViewById(R.id.mainView);
        viewToBeCaptured.setDrawingCacheEnabled(true);
        viewToBeCaptured.buildDrawingCache();
 
        button.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View arg0) {
                Log.v("Saved", "Save screenshot?");
                saveFile();
            }
        });
    }
 
    public void saveFile(){
        Bitmap b = viewToBeCaptured.getDrawingCache();
        File sd = Environment.getExternalStorageDirectory();
        File f = new File(sd, "captureAndroid.png");
        try {
            if (sd.canWrite()) {
                Log.v("Saved", "Screenshot saved");
                f.createNewFile();
                OutputStream os = new FileOutputStream(f);
                b.compress(Bitmap.CompressFormat.PNG, 90, os);
                os.close();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        viewToBeCaptured.setDrawingCacheEnabled(false);
    }
}
package com.ideaknow.proves;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.os.Environment;
import android.util.Log;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

public class ScreenCaptureActivity extends Activity {
	private View viewToBeCaptured;
	private Button button;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		button = (Button) findViewById(R.id.button1);

		viewToBeCaptured = this.findViewById(R.id.mainView);
		viewToBeCaptured.setDrawingCacheEnabled(true);
		viewToBeCaptured.buildDrawingCache();

		button.setOnClickListener(new OnClickListener(){
			@Override
			public void onClick(View arg0) {
				Log.v("Saved", "Save screenshot?");
				saveFile();
			}
		});
	}

	public void saveFile(){
		Bitmap b = viewToBeCaptured.getDrawingCache();
		File sd = Environment.getExternalStorageDirectory();
		File f = new File(sd, "captureAndroid.png");
		try {
			if (sd.canWrite()) {
				Log.v("Saved", "Screenshot saved");
				f.createNewFile();
				OutputStream os = new FileOutputStream(f);
				b.compress(Bitmap.CompressFormat.PNG, 90, os);
				os.close();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		viewToBeCaptured.setDrawingCacheEnabled(false);
	}
}
  1. Aun no hay comentarios.

  1. Aun no hay enlaces.