1. 程式人生 > >Android 截圖的各種騷操作

Android 截圖的各種騷操作

本文公眾號「AndroidTraveler」首發。

背景

在實際的應用場景中,Android 手機的截圖其實是很普遍的。

比如說 PPT 演示,比如說技術部落格圖文並茂講解。

因此懂得 Android 手機截圖的各種操作就顯得尤為重要。

使用 AndroidStudio 自帶的截圖工具

在 Logcat 選項卡的左邊工具欄有個拍照圖示,點選一下就可以了。

點選之後會彈出下面框,上面有一些操作可以點選,可以看到分別是重新截圖、往左旋轉、往右旋轉、拷貝到貼上板。

使用 Vysor

如果你使用的瀏覽器是 Chrome 瀏覽器,那麼直接新增 Vysor 擴充套件程式即可。

使用 Vysor 要求手機端也要安裝,但是你啟動電腦端的 Vysor,會自動在你手機進行安裝。

可以看到截圖也是點選拍照按鈕即可。

使用 adb 命令列

執行命令 

adb shell /system/bin/screencap -p /sdcard/tmp.png

其中最後一個字串是路徑,你需要指定你擷取的圖片儲存的位置。

在上面的演示裡面,是 /sdcard/tmp.png。

接著把手機儲存的截圖 pull 到桌面端。

執行命令

adb pull /sdcard/tmp.png .

其中最後一個字串是你桌面端的路徑,你需要指定手機拉取的圖片儲存在客戶端哪個位置。

在上面的演示裡面,是當前目錄。

使用系統截圖工具

這個不用多說了,直接使用系統的截圖工具進行截圖即可。預設會儲存到相簿。

你以為到這裡就結束了?

真正背景

在上述背景的前提下,當我用盡上面的截圖方法時,每個方法對應的結果如下:

第一個:直接把我 AndroidStudio 的截圖工具搞奔了,點選提示錯誤。

第二個:Vysor 直接黑屏。

第三個:adb pull 出來的圖片大小為 0 KB。

第四個:提示不可截圖。

其實前面三種方法不行我們覺得還好,但是最後系統這種方法不行。那就要考慮是不是系統層面做了處理。

程式碼設定不允許截圖

在 Android 專案裡面,通過設定可以讓介面不允許執行截圖操作。

設定也很簡單,就是在 Activity 裡面增加下面語句即可:

getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE, WindowManager.LayoutParams.FLAG_SECURE);

那麼,如何解決呢?

自己的 APP

如果是自己的 APP,那麼很簡單,直接給程式碼臨時加個註釋就可以了。

其他 APP

可能你會考慮既然是給 Activity 設定禁止截圖標誌,那麼我另外開一個應用,然後給 Activity 設定透明,是不是就可以起到間接的截圖操作?

答案是不行的。這邊實際測試驗證了,只要禁止截圖的介面可見,就算它的 onPause 回調了,也是不可以截圖的。表現在 Vysor 上就是有一層黑色背景疊加在上面一樣。

所以,假設真的需要,直接拿另一個手機拍照吧。

思考

一般設定不允許截圖肯定是有一些考慮的(諸如安全之類的),所以要不要強制獲取介面,還是要考慮清楚的。

相關推薦

Android 各種操作

本文公眾號「AndroidTraveler」首發。 背景 在實際的應用場景中,Android 手機的截圖其實是很普遍的。 比如說 PPT 演示,比如說技術部落格圖文並茂講解。 因此懂得 Android 手機截圖的各種操作就顯得尤為重要。 使用 AndroidStudio 自帶的截圖工具 在 Logcat

各種操作線段樹

clas bsp clu 區間維護 世界 har using set else if 線段樹是世界上最美的數據結構(主要記錄一些有意義的線段樹.....特別是騷操作 1.uestc1425 Another LCIS http://acm.uestc.ed

android

//截圖 private Bitmap generateSpringCard() { View view = getWindow().getDecorView(); view.setDrawingCacheEnabled(true); view.buildDrawingCac

android程式碼實現方法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

Android

二、具體實現方式 1),第一種實現方式 /** * 對View進行量測,佈局後截圖 * * @param view * @return */ public Bitmap convertViewTo

Android方案

Android截圖 Android截圖的原理:獲取具體需要截圖的區域的Bitmap,然後繪製在畫布上,儲存為圖片後進行分享或者其它用途 在截圖功能中,有時需要擷取全屏的內容,有時需要擷取超過一屏的內容(比如:Listview,Scrollview,RecyclerVi

Android (Screenshot)程式碼流程小結

一、基本介紹          在Android 4.0 之前,Android手機上如果要使用截圖功能,只能通過Root手機,且使用第3方截圖軟體來實現截圖功能。          Android4.0中,系統自帶了截圖功能,使用方法是音量下(VOLUME_DOWN

使用python編寫android指令碼

         測試的過程中經常需要擷取螢幕,通常的做法是使用手機自帶的截圖功能,然後將截圖檔案複製出來,這種方法的優點是不需要連線資料線就可截圖,缺點則是生成的截圖檔案命名是隨機命名的,複製出來也比較麻煩。另一種方法是使用PC端的手機助手類軟體。 這裡使用python編

untiy學習之螢幕各種方式

方式一:直接使用unity自帶的截圖函式 Application.CaptureScreenshot(“imagename”)   儲存路徑:        在PC上儲存路徑為Application.data

Python實現對Android

背景: 測試過程中,總是需要對Android裝置進行截圖,然後在截圖中標註問題描述; 手動方式: 1.使用adb scrrencap /sdcard/screen.png 命令對Android裝置進行截圖 2.然後再使用adb pull /sdcard/scrren.pn

android實現

import android.app.Activity; import android.graphics.Bitmap; import android.graphics.Rect; import android.view.View; import java.io.Fi

Android 到桌面的最佳處理方案-無須ROOT-適用Android 8.0

最近在做測試中發現一些重複性動作費時費力還容易出錯,百度了一圈發現竟然沒有WIN的教程,全是MAC的,既然做自動化方向,能偷懶那就當然自動化一波 準備 安卓手機一部,別是2.2以下,我的方法都支援,不需要root 安裝驅動,老生常談,有Android開

Android機制淺析

的除錯工具DDMS提供截圖功能,很多同步軟體例如豌豆莢也都提供截圖功能,經分析Android截圖原理大致如下: DDMS是通過adb呼叫裝置端的adbd(ADBdaemon)提供的framebufferservice進行截圖(原始碼在system/core/adb/framebuffer_service

android功能實現

這篇文章實現了擷取當前Activity頁面,並把截圖圖片儲存在SD卡指定路徑下功能(親測可用)。 首先要確保manifest有操作SD卡許可權 <!-- 允許應用內建sd卡 --> <uses-permission android:name="

Android(fb0)

1.申請獲取root許可權,這一步很重要,不然會沒有作用 private void getPermession() { try { Process process = Ru

Android儲存png圖片的例項程式碼(去掉狀態列)

今天開發中遇到了android手機截圖的需求,以下是實現程式碼: 這是截圖工具類: public class ScreenShot { // 獲取指定Activity的截圖,儲存到png檔案

快速新增簡單的Android分享

         基於cocos2d-x開發(我的是V2.2.3),分享的方法有很多,例如用SharedSDK,或者直接用各個開發平臺的SDK,但對於android平臺,如果要求不是很高的話,有一種簡單的方式(Intent元件+jni)。        1.假如工程名是LC

Android命令screencap與視訊錄製命令screenrecord

檢視幫助命令[email protected] ~$ adb shell screencap -v screencap: invalid option -- v usage: screencap [-hp] [-d display-id] [FILENAME] -h: this mes

Android如何生成gif動態

我們在部落格裡面經常看到有人上傳的截圖是動態的,即gif格式,那麼截圖怎麼生成gif格式的圖片呢? 所需工具 ①視訊截圖工具:用Android Studio開發Android的人,應該都知道,And

Android的幾種方法總結

Android截圖   Android截圖的原理:獲取具體需要截圖的區域的Bitmap,然後繪製在畫布上,儲存為圖片後進行分享或者其它用途 一、Activity截圖 1、截Activity介面(包含空白的狀態列) ? 1 2 3 4