码迷,mamicode.com
首页 > 移动开发 > 详细

小功能之:手机截屏

时间:2015-04-23 20:01:26      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:android开发   图片保存   

首先写个工具类:

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

小功能之:手机截屏

标签:android开发   图片保存   

原文地址:http://blog.csdn.net/true100/article/details/45224423

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!