您的位置 首页 > 数码极客

【setpositivebutton】关于android全屏截图,无需root无状态栏的2个方法

因为需要背景基本截图,所以特意搜索了这个,制作了这样的演示。

第一个方法: (此方法仅适用于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命令在系统上不可用,则可以取消此方法。

关于作者: admin

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐