Android手机截屏代码

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
首先写个工具类:

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, 0, 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();
}
}
});
}
}

标签: isp

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇: Python中线程池的实现(三)

下一篇:IOS中DES与MD5加密方案