我已经看到了很多不同的回复,所以有人能给出肯定的答复吗? 运行最新操作系统的设备是否需要植根以从代码中截取屏幕截图? 我正在尝试这样做,我只得到一张黑色图片(与我的屏幕尺寸相同)。 非常感谢
答案 0 :(得分:2)
如果您想截取自己的其他应用的截图。
是设备需要植根。
我也对它进行了一些搜索,但从未找到解决方案。
即使在生根之后,也没有适用于所有模型的明确解决方案。
答案 1 :(得分:0)
要获取您需要拥有root权限的其他应用的屏幕截图。要获取屏幕截图,请使用帧缓冲区。
要截取您的应用程序的屏幕截图,您可以使用此处的代码截取活动的屏幕截图:https://stackoverflow.com/a/23927196/3029105
这将获得活动的位图。
代码:
public class MainAvtivity extends Activity
{
ImageView imgView;
Button btnScreenshot;
View rootView;
Bitmap bmap;
public void onCreate(Bundle icicle)
{
super.onCreate(icicle);
setContentView(R.layout.main)
imgView = (ImageView)findViewById(R.id.imageView);
btnScreenshot = (Button)findViewById(R.id.btnScreenshot);
rootView = findViewById(android.R.id.content).getRootView();
btnScreenshot.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v){
imgView.setImageBitmap(null);
bmap = takeScreenshot();
setImgView(bmap);
}
}
public Bitmap takeScreenshot()
{
rootView.setDrawingCacheEnabled(true);
rootView.buildDrawingCache(true);
Bitmap b = Bitmap.createBitmap(rootView.getDrawingCache());
rootView.setDrawingCacheEnabled(false);
return b;
}
public void setImgView(Bitmap bitmap)
{
imgView.setImageBitmap(bitmap);
}
}