【Cocos2d-x】截图分享功能

Cocos2d-x截图实现


#include "cocos2d.h"
USING_NS_CC;


// 设置纹理宽、高、像素质量
CCRenderTexture* tx = CCRenderTexture::create(CCDirector::sharedDirector()->getWinSize().width,
											  CCDirector::sharedDirector()->getWinSize().height,
											  kCCTexture2DPixelFormat_RGBA8888);
tx->begin();
CCDirector::sharedDirector()->getRunningScene()->visit();
tx->end();
tx->saveToFile(path, kCCImageFormatPNG);
图片将会保存在data/data/包名/files目录下。


Android下分享一张图片


Intent shareIntent = new Intent(Intent.ACTION_SEND);
//shareIntent.putExtra(Intent.EXTRA_TEXT, 文本);
String imgPath = 图片路径;
File file = new File(imgPath);
if (file.exists()) {
   try {
	   //一般情况下,保存的图片文件权限为rw- rw- rw-(外部可读写),但有的机型可能是rw- --- ---(外部不可读写),如果是后者会分享失败,因为外部不能读取这张图片。为了保证正常分享,需要通过chmod命令修改图片文件的权限。
	   // 修改文件权限为-rw-r--r--,外部可读
		Process p = Runtime.getRuntime().exec("chmod 644 "+imgPath);    
		int status = p.waitFor();  //让当前线程等待
		if (status == 0) {    // 返回0表示正常终止
			Log.d(TAG, "chmod succeed");
		} else {    
			Log.d(TAG, "chmod failure");
		}    
	} catch (Exception e) {
		e.printStackTrace();
	}
   Uri uri = Uri.fromFile(file);
   shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
   shareIntent.setType("image/png");
   startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.SHARE)));
}

【Cocos2d-x】截图分享功能_第1张图片


linux系统下的文件权限


一般情况下android下的每一个应用程序都是一个独立的用户,对应一个独立的组。一个文件的权限由3组3个二进制位表示。

位置0

- 代表文件

d 代表目录

位置1-3(当前用户)

r 可读;w 可写;x 可执行

位置4-6(当前用户所在的组)

r 可读;w 可写;x 可执行

位置7-9(其他用户的权限)

r 可读;w 可写;x 可执行

-代表0

drwx都是代表1

如:rw-r--r--表示当前用户可读可写,用户所在组可读,其他用户可读。对应的十进制值为 6 4 4。

你可能感兴趣的:(Android,Cocos,Cocos2d-x游戏开发总结)