我看過許多其他使用 Xamarin.Essentials.Screenshot.CaptureAsync() 的帖子。問題在于它截取了最頂層視圖的螢屏截圖,而不是用戶可以看到的內容。
我的問題是,是否可以截取用戶可以看到的內容,如果可以,如何截取?
編輯 :
我還不是很清楚我想要實作的目標,所以這里是:
我正在嘗試截取手機默認螢屏(所有應用程式所在的位置等)以及其他應用程式的螢屏截圖。為此,我使用了前臺服務。它有效,但螢屏截圖仍然只是應用程式的視圖
uj5u.com熱心網友回復:
下面的代碼可以獲取帶有位圖的activity的視圖,然后可以將位圖作為圖片檔案保存到設備中。
private void takeScreenShot(Activity activity)
{
View view = activity.Window.DecorView;
view.DrawingCacheEnabled = true;
view.BuildDrawingCache();
Bitmap bitmap = view.DrawingCache;
Rect rect = new Rect();
activity.Window.DecorView.GetWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.Top;
int width = activity.WindowManager.DefaultDisplay.Width;
int height = activity.WindowManager.DefaultDisplay.Height;
Bitmap screenShotBitmap = Bitmap.CreateBitmap(bitmap, 0, statusBarHeight, width,
height - statusBarHeight);
view.DestroyDrawingCache();
string uri = System.IO.Path.Combine("/sdcard/Download", "screen.jpg");
using (System.IO.FileStream os = new System.IO.FileStream(uri, System.IO.FileMode.Create))
{
screenShotBitmap.Compress(Bitmap.CompressFormat.Png, 100, os);
os.Close();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/396916.html
標籤:C# 沙马林 xamarin.forms 安卓系统
上一篇:無法將“Android.Widget.ScrollView”型別的實體轉換為“AndroidX.AppCompat.Widget.Toolbar”型別。沙馬林
下一篇:Capacitor3和Ionic6Android版本命中“uses-sdk:minSdkVersion1不能小于庫[:capacitor-app]中宣告的版本21”
