简体   繁体   English

保存屏幕截图cocos2d-x android

[英]Saving a screenshot cocos2d-x android

void SaveScreenshot()   
{
   CCSize size = CCDirector::sharedDirector()->getWinSize();
   CCRenderTexture* texture = CCRenderTexture::create((int)size.width, (int)size.height);    
   texture->setPosition(ccp(size.width/2, size.height/2));    
   texture->begin();
   CCDirector::sharedDirector()->getRunningScene()->visit();
   texture->end();
   texture->saveToFile("screenshot.png", kCCImageFormatPNG);
}

How can I access the screenshot with native java on android? 如何在Android上使用本机Java访问屏幕截图?
I want to create a chooser for a send intent, but I can't seem to find the directory that cocos2dx saveToFile() writes to.. help? 我想为发送意图创建选择器,但似乎找不到cocos2dx saveToFile()写入的目录。

You need to call java method that will create your screenshot image. 您需要调用将创建屏幕快照图像的java方法。

    public static void ScreenShot()
    {
        Bitmap imageBitmap  = BitmapFactory.decodeFile(Cocos2dxHelper.getCocos2dxWritablePath() + "/" + "screenshot.png");

        String fileHolder = "SampleFolder";
        File filepathData = new File("/sdcard/" + fileHolder);

        //~~~Create Dir
        try {
                if (!filepathData.exists()) 
                {
                    filepathData.mkdirs();
                    filepathData.createNewFile();

                    FileWriter fw = new FileWriter(filepathData + fileHolder);
                    BufferedWriter out = new BufferedWriter(fw);
                    String toSave = String.valueOf(0);
                    out.write(toSave);
                    out.close();
                }
            } 
            catch (IOException e1) {

            }   

            //~~~Create Image
            File file = new File("/sdcard/" + "Your filename");

            try 
            {
                file.createNewFile();
                FileOutputStream ostream = new FileOutputStream(file);
                imageBitmap.compress(CompressFormat.PNG, 100, ostream);
                ostream.close();
            } 
            catch (Exception e) {}

            Uri phototUri = Uri.fromFile(file);
            Intent shareIntent = new Intent();
            shareIntent.setAction(Intent.ACTION_SEND);
            shareIntent.putExtra(Intent.EXTRA_STREAM, phototUri);
            //~~~Add Code Below
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM