簡體   English   中英

在Android上截取屏幕截圖

[英]Take a screenshot on Android

我正在嘗試為Android構建一個自定義啟動器,需要在用戶按下主頁按鈕之后立即截取設備,因此在我的應用程序(啟動器)返回前台之前。 我的想法是在我的啟動器/活動/應用程序接管屏幕之前截取設備顯示的任何內容。

我知道這樣的事情需要root訪問權限,但這不是問題。 誰能告訴我如何拍攝截圖? 一些示例代碼? 在線教程? 我看過網上但找不到任何有用的東西。 我試圖簡單地截取屏幕截圖,就像Android Market上的gazillion應用程序已經使用root訪問權限一樣。 提前致謝 :-)

這是一個安全漏洞。 你應該有一個root設備才能做到這一點。

您可以將此代碼與您自己的應用程序一起使用:(我從這個答案獲得了另一個問題的代碼: https//stackoverflow.com/a/5651242/237838

// image naming and path  to include sd card  appending name you choose for file
String mPath = Environment.getExternalStorageDirectory().toString() + "/" + ACCUWX.IMAGE_APPEND;   

// create bitmap screen capture
Bitmap bitmap;
View v1 = mCurrentUrlMask.getRootView();
v1.setDrawingCacheEnabled(true);
bitmap = Bitmap.createBitmap(v1.getDrawingCache());
v1.setDrawingCacheEnabled(false);

OutputStream fout = null;
imageFile = new File(mPath);

try {
   fout = new FileOutputStream(imageFile);
   bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fout);
   fout.flush();
   fout.close();
} catch (FileNotFoundException e) {
   e.printStackTrace();
} catch (IOException e) {
   e.printStackTrace();
}

嘗試查看此代碼以獲取其他幫助:

PS可以使用DDMS從Android獲取屏幕截圖,但這是另一個故事。

PPS如果要在下面的活動上透明地繪制啟動器,則需要將像素格式設置為RGBA(僅處理OpenGL)並相應地進行渲染。 您無需截取底層活動的屏幕截圖即可。

根植設備:使用扎根設備上運行此代碼:

process = Runtime.getRuntime().exec("su -c cat /dev/graphics/fb0");
InputStream is = process.getInputStream();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM