android截取屏幕部分图片,android截取屏幕图片

packagecom.iceman.printscreen;importjava.io.File;importjava.io.FileOutputStream;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.Bitmap.Config;importandroid.os.Bundle;importandroid.os.Environment;importandroid.view.Display;importandroid.view.LayoutInflater;importandroid.view.View;importandroid.view.View.OnClickListener;importandroid.view.WindowManager;importandroid.widget.Button;importandroid.widget.LinearLayout;importandroid.widget.Toast;publicclassPrintScreenDemoActivityextendsActivity {privateButton mButton;privateLinearLayout mLayout;privateintmPrintNum;/**Called when the activity is first created.*/@OverridepublicvoidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);

LayoutInflater inf=this.getLayoutInflater();

mLayout=(LinearLayout)inf.inflate(R.layout.main,null);

setContentView(mLayout);

mButton=(Button)findViewById(R.id.print_btn);

mButton.setOnClickListener(newOnClickListener() {publicvoidonClick(View v) {

GetandSaveCurrentImage();

mPrintNum++;

mButton.setText("截屏次数:"+mPrintNum);

}

});

}privatevoidGetandSaveCurrentImage()

{//1.构建BitmapWindowManager windowManager=getWindowManager();

Display display=windowManager.getDefaultDisplay();intw=display.getWidth();inth=display.getHeight();

Bitmap Bmp=Bitmap.createBitmap( w, h, Config.ARGB_8888 );//2.获取屏幕View decorview=this.getWindow().getDecorView();

decorview.setDrawingCacheEnabled(true);

Bmp=decorview.getDrawingCache();

String SavePath=getSDCardPath()+"/PrintScreenDemo/ScreenImage";//3.保存Bitmaptry{

File path=newFile(SavePath);//文件String filepath=SavePath+"/Screen_"+mPrintNum+".png";

File file=newFile(filepath);if(!path.exists()){

path.mkdirs();

}if(!file.exists()) {

file.createNewFile();

}

FileOutputStream fos=null;

fos=newFileOutputStream(file);if(null!=fos) {

Bmp.compress(Bitmap.CompressFormat.PNG,90, fos);

fos.flush();

fos.close();

Toast.makeText(this,"截屏文件已保存至SDCard/PrintScreenDemo/ScreenImage/下", Toast.LENGTH_LONG).show();

}

}catch(Exception e) {

e.printStackTrace();

}

}/*** 获取SDCard的目录路径功能

*@return*/privateString getSDCardPath(){

File sdcardDir=null;//判断SDCard是否存在booleansdcardExist=Environment.getExternalStorageState().equals(android.os.Environment.MEDIA_MOUNTED);if(sdcardExist){

sdcardDir=Environment.getExternalStorageDirectory();

}returnsdcardDir.toString();

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值