Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android實現截屏

Android實現截屏

編輯:關於Android編程



我們大家都在用電腦的時候,用過截屏的功能,有的時候截屏給我們帶來了很多的方便,那麼我們現在怎麼樣才能在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"); 
} 
} 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved