使用本机Android API获取屏幕截图



可能的重复:
如何以编程方式拍摄屏幕快照?

作为构建新应用程序的一部分,我想允许用户使用应用程序中的按钮屏幕截图。但是,我需要使用本机API。

我试图寻找参考和Android开发人员网站,但找不到本机API功能可以执行上述。

您能否确认确实可以执行上述(以编程方式进行屏幕截图)?您还可以将我带到我可以看到API的地方?

尝试以下代码:

public class ScreenShotActivity extends Activity {
    Bitmap bmScreen;
    RelativeLayout mLayout;
    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. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        screen = (View) findViewById(R.id.screen);
        Button btnCaptureScreen = (Button) findViewById(R.id.capturescreen);
        btnCaptureScreen.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                screen.setDrawingCacheEnabled(true);
                bmScreen = screen.getDrawingCache();
                saveImage(bmScreen);
                // showDialog(ID_SCREENDIALOG);
            }
        });
    }
    protected void saveImage(Bitmap bmScreen2) {
        // TODO Auto-generated method stub
        // String fname = "Upload.png";
        File saved_image_file = new File(
                Environment.getExternalStorageDirectory()
                        + "/captured_Bitmap.png");
        if (saved_image_file.exists())
            saved_image_file.delete();
        try {
            FileOutputStream out = new FileOutputStream(saved_image_file);
            bmScreen2.compress(Bitmap.CompressFormat.PNG, 100, out);
            out.flush();
            out.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

也添加权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

xml将是:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/screen"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello" />
    <Button
        android:id="@+id/capturescreen"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Capture Screen" />
    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:background="@drawable/roundcorner"
        android:scaleType="fitXY"
        android:src="@drawable/android_awesome" />
</RelativeLayout>

最新更新