我试图在活动显示后捕捉屏幕截图,现在我有一个解决方案,就像这样
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
ScreenManager.captureScreen();
}
}, 1500);
将代码放在onCreate of activity中,但我发现有时活动开始很慢,超过1500毫米,然后捕获的位图将为空,我想找到类似的函数或回调,如onShown()或onDraw (),但未能找到它。是否有任何回调在调用活动中的所有视图时调用,然后我可以将捕获屏幕代码放在这里,我需要这个,非常感谢。
答案 0 :(得分:1)
您是否尝试过onStart或onResume运行ScreenManager.captureScreen() - 它们在onCreate之后调用。如果应用程序进入后台并再次返回,则会调用onResume,因此您需要创建一个布尔值来进行检查。
此处的活动生命周期图可能有所帮助:http://developer.android.com/reference/android/app/Activity.html
答案 1 :(得分:0)
您可以使用以下代码拍摄快照,
ImageView v1 = (ImageView)findViewById(R.id.mImage);
v1.setDrawingCacheEnabled(true);
Bitmap bm = v1.getDrawingCache();