android屏幕截图代码,Android 屏幕截图 代码

1、本文转自:http://www.cnblogs.com/pcstart/archive/2011/09/05/2167187.html

public

static

Bitmap getViewBitmap(View v) {         v.clearFocus();

//

v.setPressed(

false

);

//

//

能画缓存就返回false

boolean

willNotCache

=

v.willNotCacheDrawing();         v.setWillNotCacheDrawing(

false

);

int

color

=

v.getDrawingCacheBackgroundColor();         v.setDrawingCacheBackgroundColor(

0

);

if

(color

!=

0

) {             v.destroyDrawingCache();         }         v.buildDrawingCache();         Bitmap cacheBitmap

=

v.getDrawingCache();

if

(cacheBitmap

==

null

) {

//

Log.e(TAG, "failed getViewBitmap(" + v + ")", new

//

RuntimeException());

return

null

;         }         Bitmap bitmap

=

Bitmap.createBitmap(cacheBitmap);

//

Restore the view

v.destroyDrawingCache();         v.setWillNotCacheDrawing(willNotCache);         v.setDrawingCacheBackgroundColor(color);

return

bitmap;     }

//

保存到sdcard

//

savePic(getViewBitmap(v), "sdcard/xx.png");

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

}

importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importandroid.app.Activity;importandroid.graphics.Bitmap;importandroid.graphics.Rect;importandroid.view.View;publicclassScreenShot {//获取指定Activity的截屏,保存到png文件privatestaticBitmap takeScreenShot(Activity activity){//View是你需要截图的ViewView view=activity.getWindow().getDecorView();

view.setDrawingCacheEnabled(true);

view.buildDrawingCache();

Bitmap b1=view.getDrawingCache();//获取状态栏高度Rect frame=newRect();

activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(frame);intstatusBarHeight=frame.top;

System.out.println(statusBarHeight);//获取屏幕长和高intwidth=activity.getWindowManager().getDefaultDisplay().getWidth();intheight=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();returnb;

}//保存到sdcardprivatestaticvoidsavePic(Bitmap b,String strFileName){

FileOutputStream fos=null;try{

fos=newFileOutputStream(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();

}

}//程序入口publicstaticvoidshoot(Activity a){

ScreenShot.savePic(ScreenShot.takeScreenShot(a),"sdcard/xx.png");

}

}

FilemyDir=newFile("/sdcard/saved_images");myDir.mkdirs();Randomgenerator=newRandom();intn=10000;n=generator.nextInt(n);Stringfname="Image-"+n+".jpg";Filefile=newFile(myDir,fname);if(file.exists())file.delete();try{FileOutputStreamout=newFileOutputStream(file);finalBitmap.compress(Bitmap.CompressFormat.JPEG,90,out);out.flush();out.close();}catch(Exceptione){e.printStackTrace();}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值