截取整个屏幕截图

时间:2011-11-30 11:50:30

标签: android screenshot

我看过很多代码片段用于截取屏幕截图,但却无法获取整个屏幕的屏幕截图,而不仅仅是视图。它应该复制我们使用ddms获取屏幕截图的方式。

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:3)

有一个Android屏幕截图库,可供here使用。有维基页面说库可用于截取整个屏幕的截图,而无需根级访问,即使是来自未签名的应用程序。我从来没有尝试过。您可以将它作为起点。

答案 1 :(得分:2)

        sh = Runtime.getRuntime().exec("su", null, null);
        System.out.println("capturing");
        OutputStream outputstream = sh.getOutputStream();
        outputstream.write("/system/bin/screencap -p /sdcard/tos_processing.png".getBytes("ASCII"));
        outputstream.flush();
        outputstream.close();
        sh.waitFor();
        System.out.println("captured");
        bitmap = BitmapFactory.decodeFile("/sdcard/tos_processing.png");

答案 2 :(得分:0)

试试这个对我有用......

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        view = (ImageView) findViewById(R.id.ImageView01);
        Button myBtn = (Button) findViewById(R.id.Button01);
        myBtn.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {

                View v1 = view.getRootView();

                v1.setDrawingCacheEnabled(true);

                Bitmap bm = v1.getDrawingCache();
                BitmapDrawable bitmapDrawable = new BitmapDrawable(bm);

                ImageView view2 = (ImageView) findViewById(R.id.ImageView01);

                view2.setBackgroundDrawable(bitmapDrawable);
            }
        });
}