我看到了很多有关截图的代码片段,但没有找到能够获取整个屏幕截图而不仅是一个视图的方法。它应该模拟使用ddms获取屏幕截图的方式。
有人可以帮忙吗?
我看到了很多有关截图的代码片段,但没有找到能够获取整个屏幕截图而不仅是一个视图的方法。它应该模拟使用ddms获取屏幕截图的方式。
有人可以帮忙吗?
有一个名为“Android Screenshot Library”的库可用,可以在此处获取。其中的wiki页面称,该库可用于无需root级别访问权限甚至从未签名的应用程序中拍摄整个屏幕截图。虽然我从未尝试过,但您可以将其用作起点。
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");
你可以试试这个,对我很有效...
@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);
}
});
}