[英]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.