加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Android手机截屏代码

发布时间:2020-12-14 23:18:13 所属栏目:Java 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 首先写个工具类:public class ScreenShotTool {private Activity activity;public ScreenShotTool(Activity activity) {this.activity = activity;}p

以下代码由PHP站长网 52php.cn收集自互联网

现在PHP站长网小编把它分享给大家,仅供参考

首先写个工具类:

public class ScreenShotTool {
private Activity activity;
public ScreenShotTool(Activity activity) {
this.activity = activity;
}

public Bitmap getActivityBitmap() {
/**取得DecorView,这个View是你需要截图的界面*/
View view = activity.getWindow().getDecorView();
view.setDrawingCacheEnabled(true);
/**建立图片缓存*/
view.buildDrawingCache();
Bitmap b1 = view.getDrawingCache();
/**获取状态栏高度*/
Rect frame = new Rect();
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);
int statusBarHeight = frame.top;
/**获取屏幕宽和高*/
int width = activity.getWindowManager().getDefaultDisplay().getWidth();
int height = activity.getWindowManager().getDefaultDisplay().getHeight();
/**保存前去掉标题栏*/
Bitmap b = Bitmap.createBitmap(b1,statusBarHeight,width,height - statusBarHeight);
/**清除缓存*/
view.destroyDrawingCache();
return b;
}

/**保存到本地*/
private void compressBitmap(Bitmap b,File filePath) {
FileOutputStream fos = null;
try {
fos = new FileOutputStream(filePath);
if (null != fos) {
/**对图片进行压缩*/
b.compress(Bitmap.CompressFormat.PNG,100,fos);
fos.flush();
fos.close();
}
}
catch (Exception e) {
e.printStackTrace();
}
}

public void saveScreenshopBitmap(File filePath) {
if (filePath == null) { return; }
if (!filePath.exists()) {
try {
filePath.createNewFile();
}
catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
compressBitmap(getActivityBitmap(),filePath);
}
}

--------------在activit中使用-----------

public class ScreenShotActivity extends Activity {
private Button saveBtn;
private Activity act;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_photo);
saveBtn=(Button) findViewById(R.id.photo_btn);
act=this;
saveBtn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
/**保存路径*/
String savePath = Environment.getExternalStorageDirectory()+"/ldm/myImages";
try {  
File filePath = new File(savePath);  
if(!filePath.exists()){  
filePath.mkdirs();  
}  
/**文件路径*/
String filepath = savePath + "/today.png";  
File file = new File(filepath);  
if (!file.exists()) {  
file.createNewFile();  
} 
/**把当前Activity截屏,也可以传入其它Activity*/
new ScreenShotTool(act).saveScreenshopBitmap(file);
}catch(Exception  e){
e.printStackTrace();
}
}
});
}
}

以上内容由PHP站长网【52php.cn】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读