因为需要背景基本截图,所以特意搜索了这个,制作了这样的演示。
第一个方法: (此方法仅适用于Activity。无法剪切应用程序外部的界面。)代码很少。
import Java . io . file;
import Java . io . file not found exception;
import Java . io . fileoutputstream;
import Java . io . io exception;
Import android.anno
Import android.a
Import android.a
Import android.con
Import android.gra
import Android . OS . bundle;
import Android . OS . environment;
import Android . view . key event;
import Android . view . view;
importandroid . view . view . onclick listener;
import Android . widget . button;
import Android . widget . toast;
@ suppress lint(' setjavascriptenabled ')
public class main activity extends activity {
私有Button leftStepBtn
专用位图BM;
私有字符串imgurl
/* * called when the activity is first created。*/
@Override
Public void oncreate(捆绑savedinstancestate) {
(savedInstanceState);
SetContentView);
im gurl=environment . getexternalstoragedirectory()
.get path()'/DCIM/my picture/';
leftstepbtn=(button)findviewbyid);
LE);
Le(“屏幕快照”);
Le(新的onclicklistener () {
@Override
Public void onClick(View v) {
//从目前view所在的view结构取得根view
view vv=v . getrootview();
//设置属性
vv . setdrawingcacheenabled(true);
//导入位图
BM=vv . getdrawingcache();
ShowConfirmDialog(1)。show();
}
});
}
@ suppress lint(“sd卡路径”)
Public void save bitmap(位图位图,字符串位名称)throws io exception {
File folder=new File(im gurl);
If(!(){
();
}
Filefile=new file (imgurl位元名称'。JPG ');
Toa、“正在保存图片”、Toa)。show();
FileOutputStream out
If(!(){
Try {
out=new FileOutputStream(file);
If,70,out){
toa,“成功存入专辑了”,
Toa)。show();
out . flush();
out . close();
}
}文件未满足要求e {
e . printstacktrace();
} catch (IOException e) {
e . printstacktrace();
}
}
}
/* *
*是否要保存AlertDialog
* @param I
*/
public alert dialog showconfirmdialog(final int I){
Return new Aler)
.setIcon)
.setTitle(“保存确认”)。setMessage(“确认保存图像!”)。
.setPositiveButton(' ok ',new DialogIn() {
@Override
public void onclick(dialog interface dialog,intwhich) {
//TODO Auto-generated method stub
Try {
If(i==1){
string num=getRandomCode();
SaveBitmap(bm,' imagePic ' num);
}
} catch (IOException e) {
//TODO Auto-generated catch block
e . printstacktrace();
}
}
})。setNegativeButton(“取消”,null)。create();
}
//随机获取图片编号
Private String getRandomCode() {
字串num=
for(int I=0;I 10I) {
int f=(int)()* 10);
num=f;
}
Return num
}
//按钮
@Override
public boolean onkeydown(int keycode、keyevent
if(key code==key event . key code _ back){
finish();
Return true
}
Return false
}
}
第二种方法(拦截应用程序外部的屏幕,即桌面或其他应用程序的方法):
stringim gurl=environment . getexternalstoragedirectory()
.get path()'/DCIM/my picture/';
simple date format format=new simple date format(' yyyy . mm . DD _ hh . mm . ss ');
Datedate=calendar.getinstance()。get time();
string timeStamp=(date);
String full path=imgurl timestamp '。PNG ';
屏幕()。takescreenshot (context,full path);
ScreentShotUtil shell命令的软件包=-=如果shell命令在系统上不可用,则可以取消此方法。