Capture Active Screen in Android

C

AndroidManifest.xml :

<?xml version=”1.0″ encoding=”utf-8″?>

<manifest xmlns:android=”http://schemas.android.com/apk/res/android”

package=”com.example.capturescreen”

android:versionCode=”1″

android:versionName=”1.0″ >

<uses-sdk

android:minSdkVersion=”8″

android:targetSdkVersion=”17″ />

<application

android:allowBackup=”true”

android:icon=”@drawable/ic_launcher”

android:label=”@string/app_name”

android:theme=”@style/AppTheme” >

<activity

android:name=”com.example.capturescreen.MainActivity”

android:label=”@string/app_name” >

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

</application>

</manifest>

 

MainActivity :

package com.example.capturescreen;

import android.app.Activity;

import android.app.Dialog;

import android.graphics.Bitmap;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.EditText;

import android.widget.ImageView;

import android.widget.TextView;

public class MainActivity extends Activity {

Bitmap bmScreen;

Dialog screenDialog;

static final int ID_SCREENDIALOG = 1;

ImageView bmImage;

Button btnScreenDialog_OK;

TextView TextOut;

View screen;

EditText EditTextIn;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

screen = (View)findViewById(R.id.screen);

Button btnCaptureScreen = (Button)findViewById(R.id.capturescreen);

EditTextIn = (EditText)findViewById(R.id.textin);

btnCaptureScreen.setOnClickListener(new OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

screen.setDrawingCacheEnabled(true);

bmScreen = screen.getDrawingCache();

showDialog(ID_SCREENDIALOG);

}});

}

 

 

@Override

protected Dialog onCreateDialog(int id) {

// TODO Auto-generated method stub

screenDialog = null;

switch(id){

case(ID_SCREENDIALOG):

screenDialog = new Dialog(this);

screenDialog.setContentView(R.layout.dialog);

bmImage = (ImageView)screenDialog.findViewById(R.id.image);

TextOut = (TextView)screenDialog.findViewById(R.id.textout);

btnScreenDialog_OK = (Button)screenDialog.findViewById(R.id.okdialogbutton);

btnScreenDialog_OK.setOnClickListener(btnScreenDialog_OKOnClickListener);

}

return screenDialog;

}

 

@Override

protected void onPrepareDialog(int id, Dialog dialog) {

// TODO Auto-generated method stub

switch(id){

case(ID_SCREENDIALOG):

dialog.setTitle(“Captured Screen”);

TextOut.setText(EditTextIn.getText().toString());

bmImage.setImageBitmap(bmScreen);

break;

}

}

 

private Button.OnClickListener btnScreenDialog_OKOnClickListener

= new Button.OnClickListener(){

@Override

public void onClick(View arg0) {

// TODO Auto-generated method stub

screenDialog.dismiss();

}};

}

 

activity_main.xml :

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android:orientation=”vertical”

android:layout_width=”fill_parent”

android:layout_height=”fill_parent”

android:id=”@+id/screen”>

<Button

android:id=”@+id/capturescreen”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”Capture Screen”/>

<TextView

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”Enter some text here which you will see on captured screen”/>

<EditText

android:id=”@+id/textin”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”/>

</LinearLayout>

 

dialog.xml :

<?xml version=”1.0″ encoding=”UTF-8″?>

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

android:id=”@+id/layout_root”

android:orientation=”vertical”

android:layout_width=”fill_parent”

android:layout_height=”fill_parent”

android:paddingLeft=”10dip”

android:paddingRight=”10dip”>

<TextView

android:id=”@+id/textout”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”/>

<ImageView

android:id=”@+id/image”

android:layout_width=”400px”

android:layout_height=”400px”/>

<Button

android:id=”@+id/okdialogbutton”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”OK”/>

</LinearLayout>

 

Output Screen :

 

About the author

prashant.koli
By prashant.koli

Category