如何本机扩展采取截图在Android设备? [英] How Native Extension take screenshot on Android device?

查看:201
本文介绍了如何本机扩展采取截图在Android设备?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有打算采取与本机扩展的Andr​​oid设备的屏幕截图一个Adobe AIR应用程序,但Java code返回一个黑色的图像。

I have a Adobe Air application that intend to take a screenshot with Native Extension on Android device, but the java code returns a black image.

public FREObject call(FREContext context, FREObject[] params) {
    View view = context.getActivity().getWindow().getDecorView();
    view.setDrawingCacheEnabled(true);
    view.buildDrawingCache();
    Bitmap image = view.getDrawingCache();
}

我不知道很多关于Adobe AIR的。我的Java code正好运行在Android上的Java应用程序,但返回的黑色图像在Adobe AIR上Android应用程序与本机扩展。

I don't know much about Adobe Air. My java code runs exactly on Android Java Application, but returns black image on Adobe Air Android Application with Native Extension.

有没有什么解决办法,或任何方式采取NativeExtension使用Java截图?

Is there any solution or any way to take a screenshot using Java in NativeExtension?

谢谢了!

推荐答案

可能是因为你没有得到正确的观点。试试这个得到最上面的根视图。

Could be that you are not getting the correct view. Try this to get the topmost root view.

public FREObject call(FREContext context, FREObject[] params)
{
    View view = findViewById(android.R.id.content).getRootView();
    view.setDrawingCacheEnabled(true);
    Bitmap image = view.getDrawingCache();
    if(image == null)
    {
        System.out.println("Image returned was null!");
    }
}

我也删除了buildDrawingCache()线;这有时会导致问题,从我读过它不是完全必要的。

I also removed the buildDrawingCache() line; that can sometimes cause issues, and from what I've read it's not completely necessary.

最后,你要检查,如果返回的位图是空。如果是这样,可能是为什么它是全黑的。

Finally you'll want to check if the bitmap being returned is null. If so that could be why it's all black.

这篇关于如何本机扩展采取截图在Android设备?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆