Description: This example will show how you can put dynamic content on a dialog and capture the screen in android.
NOTE:
The screen is captured in the first time only. After that, every time call getDrawingCache() return the same first screen.
Algorithm:
1.) Create a new project by File-> New -> Android Project name it DynamicContentCustomDialog.
2.) Write following into 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>
3.) Create and write following into layout/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="300px" android:layout_height="300px" /> <Button android:id="@+id/okdialogbutton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="OK" /> </LinearLayout>
4.) Run for output.
Steps:
1.) Create a project named DynamicContentCustomDialog and set the information as stated in the image.
Build Target: Android 4.2
Application Name: DynamicContentCustomDialog
Package Name: com.example.DynamicContentCustomDialog
Activity Name: MainActivity
Min SDK Version: 2.2
2.) Open MainActivity.java file and write following code there:
package com.example.dynamiccontentcustomdialog; 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(); }}; }
3.) Compile and build the project.
Output
The 9 Best Programming Languages To Learn In 2020
10 Best Programming Languages to Learn in 2019 (for Job & Future)
10 Reasons to Learn Python Programming Language in 2019
Top 15 Best Android Apps For C Programming | 2018 Exclusive
5 emerging programming languages with a bright future
13 programming languages defining the future of coding
The Top 10 Programming Languages To Learn In 2018
13 Best Programming Languages to Learn