Visualizzazione stampabile
-
Creare uno screenshot
Ciao raga, vorrei sapere come fare uno screenshot in android tramite ambiente di programmazione...
ho trovato questo codice online
codice:
// image naming and path to include sd card appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + ACCUWX.IMAGE_APPEND;
// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);
OutputStream fout = null;
imageFile = new File(mPath);
try {
fout = new FileOutputStream(imageFile);
bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
fout.flush();
fout.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ma non so cosa diamine sia "mCurrentUrlMask" ... dovrebbe una View, ma quando e come è stata creata? Qualcuno può darmi una mano (anche consigliandomi un altro algoritmo)? Grazie!
-
Non ho ben capito se vuoi che lo screenshot sia fatto a run-time oppure dall'ambiente di sviluppo(vedi ddms di eclipse).
"mCurrentUrlMask" è la view del quale vuoi fare uno screenshot. Quindi se tu volessi fare uno screenshot di tutta la schermata dovrai utilizzare il layout madre del file xml!
Prendiamo per esempio questo semplice layout:
codice:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button
android:id="@+id/backbutton"
android:text="Back"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="First Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:width="100px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:text="Last Name"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:width="100px"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
Per fare uno screenshot di tutta la pagina allora la mia "mCurrentUrlMask" sarà il mio linearLayout, mentre se volessi fare uno screenshot di un determinato button, la mia "mCurrentUrlMask" sarà il button scelto!