保存截图cocos2d-x android

时间:2014-03-06 03:20:15

标签: java android c++ cocos2d-x

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

如何在Android上使用原生java访问屏幕截图? 我想为发送意图创建一个选择器,但我似乎无法找到cocos2dx saveToFile()写入的目录..帮助?

1 个答案:

答案 0 :(得分:4)

您需要调用将创建屏幕截图图像的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
    }