天天看點

靜止截屏 android,Android應用内 代碼截屏(擷取View快照)和 禁止截屏

1. 應用内的代碼截屏(擷取View的快照)

Android的View類中提供了擷取控件繪制緩存的方法,這種截屏的方式僅限于應用内自己的Activity界面,不需要任何權限,嚴格來說該方法不屬于截屏,隻是擷取某個View控件每次繪制後的快照,代碼如下:

截取某一個控件繪制後的快照:

// 擷取需要截取快照的控件

View view = findViewById(R.id.my_view);

// 設定控件允許繪制緩存

view.setDrawingCacheEnabled(true);

// 擷取控件的繪制緩存(快照)

Bitmap bitmap = view.getDrawingCache();

// 儲存截取的快照

bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);

截取應用(Activity)的整個螢幕:

// 擷取Activity整個視窗最頂層的View

View view = activity.getWindow().getDecorView();

// 設定控件允許繪制緩存

view.setDrawingCacheEnabled(true);

// 擷取控件的繪制緩存(快照)

Bitmap bitmap = view.getDrawingCache();

// 儲存截取的快照

bitmap.compress(Bitmap.CompressFormat.PNG, 100, fileOutputStream);

2. 應用内的禁止截屏

APP的某些界面如果不希望使用者能夠截屏,可以對目前目前的Activity設定一個安全标記,如下:

// 禁止截屏

activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE);

設定該安全标記後,在該Activity界面,無論是系統截屏,還是adb指令擷取截屏,都将無法使用(有root權限的不正常情況除外)。

[Android學習筆記]擷取view的尺寸和坐标

對于UI方面很多時候需要擷取它的很多資訊,具體情況見view的文檔 View文檔 http://developer.android.com/training/index.html 常用方法:擷取vie ...

MFC中Doc類擷取View類的方法(SDI)

從view類中擷取Doc的方法如下: CYourDoc* pDoc = GetDocument(); 這個函數已經寫好,是以無需自己添加,使用時直接利用pDoc即可. 若反過來,從Doc中擷取View ...

Android必知必會-擷取View坐标和長寬的時機

如果移動端通路不佳,請通路–>Github版 背景 最近要實作一個功能,用到了一些屬性動畫,需要擷取一些View的坐标資訊,設計圖如下: 這裡我使用的是DialogFragment來實作的,可以 ...

Android 禁止截屏、錄屏 — 解決PopupWindow無法禁止錄屏問題

項目開發中,為了使用者資訊的安全,會有禁止頁面被截屏.錄屏的需求. 這類資料,在網上有很多,一般都是通過設定Activity的Flag解決,如: //禁止頁面被截屏.錄屏 getWindow().add ...

Android平台之不預覽擷取照相機預覽資料幀及精确時間截

在android平台上要擷取預覽資料幀是一件極其容易的事兒,但要擷取每幀資料對應的時間截并不那麼容易,網絡上關于這方面的資料也比較少.之是以要擷取時間截,是因為某些情況下需要加入精确時間軸才能解決問題 ...

Android查缺補漏(View篇)--在 Activity 的 onCreate() 方法中為什麼擷取 View 的寬和高為0?

在 Activity 的 onCreate() 方法中為什麼擷取 View 的寬和高為0 ? @Override protected void onCreate(Bundle savedInstanc ...

android學習8——擷取view在螢幕上的絕對坐标

擷取view在螢幕上的絕對坐标在調試時候非常有用. 看如下代碼 public class AbsolutePosActivity extends Activity { @Override public ...

Android 開發 Activity裡擷取View的寬度和高度 轉載