Android 屏幕截图

转自:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=96116&extra=page%3D1&ordertype=2

我们大家都在用电脑的时候,用过截屏的功能,有的时候截屏给我们带来了很多的方便,那么我们现在怎么样才能在android中实现这个功能那,下面我们就用代码来实现这个对我们很方便的功能。

java代码:

import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import android.app.Activity; 
import android.graphics.Bitmap; 
import android.graphics.Rect; 
import android.view.View; 


public class ScreenShot { 


// 获取指定Activity的截屏,保存到png文件 
private static Bitmap takeScreenShot(Activity activity){ 


//View是你需要截图的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; 
System.out.println(statusBarHeight); 

//获取屏幕长和高 
int width = activity.getWindowManager().getDefaultDisplay().getWidth(); 
int height = activity.getWindowManager().getDefaultDisplay().getHeight(); 


//去掉标题栏 
//Bitmap b = Bitmap.createBitmap(b1, 0, 25, 320, 455); 
Bitmap b = Bitmap.createBitmap(b1, 0, statusBarHeight, width, height - statusBarHeight); 
view.destroyDrawingCache(); 
return b; 
} 


//保存到sdcard 
private static void savePic(Bitmap b,String strFileName){ 
FileOutputStream fos = null; 
try { 
fos = new FileOutputStream(strFileName); 
if (null != fos) 
{ 
b.compress(Bitmap.CompressFormat.PNG, 90, fos); 
fos.flush(); 
fos.close(); 
} 
} catch (FileNotFoundException e) { 
e.printStackTrace(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 


//程序入口 
public static void shoot(Activity a){ 
ScreenShot.savePic(ScreenShot.takeScreenShot(a), "sdcard/xx.png"); 
} 
}

Kao,那个链接ctrl + s直接保存不了,没办法,转了,转了再保存!!!shit!!!

posted on 2013-01-17 20:49  封起De日子  阅读(129)  评论(0编辑  收藏  举报

导航