首页 > 解决方案 > 使用应用程序上下文的 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)

我找到了这段代码,但它只适用于单个活动,我想从应用程序执行此操作以截取前台活动的屏幕截图,我也尝试从后台堆栈获取当前上下文,但我不能。有什么帮助吗?

标签: androidkotlinscreenshot

解决方案


解决方案是:

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;
}


}

推荐阅读