android - 使用应用程序上下文的 android 应用程序中的屏幕截图
问题描述
我正在尝试在应用程序类中以编程方式在我的应用程序中截取屏幕截图
val mPath: String = activityContext.getExternalFilesDir(null)!!.absolutePath.toString() + "/" + now + ".jpg"
val view = context.window.decorView.rootView
val bitmap: Bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888)
val canvas = Canvas(bitmap)
view.draw(canvas)
val imageFile = File(mPath)
我找到了这段代码,但它只适用于单个活动,我想从应用程序执行此操作以截取前台活动的屏幕截图,我也尝试从后台堆栈获取当前上下文,但我不能。有什么帮助吗?
解决方案
解决方案是:
public class MyApplication extends Application
implements Application.ActivityLifecycleCallbacks {
private Context activityContext;
...
@Override
public void onCreate() {
...
registerActivityLifecycleCallbacks(this);
}
@Override
public void onActivityStarted(Activity activity) {
this.activityContext = activity;
}
}
推荐阅读
- flutter - Flutter 在 MultiProvider 中使用 StreamingSharedPreferences
- python - 可调用对象作为方法不将 self 作为参数传递
- excel - 为每个循环组合多个范围 vba
- kotlin - 可以在没有协程的ViewModel类中调用DAO类的函数吗
- laravel - getCustomAttribute 中的 Laravel 方法返回 cullection null
- javascript - Highcharts Spiderweb 图表 xAxis 标签在长标签名称上消失
- javascript - 无法将引导 JS 加载到 Electron 应用程序中
- javascript - hibext_instdsigdipv2 cookie 来自哪里?
- c++ - 达到限制后自动旋转值的自定义 qt spinbox
- linux - 如果字符串的出现每行恰好一次,如何删除一行?