小功能之:手机截屏

首先写个工具类:

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

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。