在cocos2d-x项目中有个需求,就是在项目动态生成带icon的二维码图片。在ios中获取icon的地址比较简单,可以直接在cocos2d-x项目中直接使用。但是android的icon一般在drawable下,2d-x 中不能直接使用,于是想了个方法,先上代码。
public String getIconPath() {
String fileName = "5b5c7d544259aec6.png";
String path = this.getFilesDir().getAbsolutePath() + fileName;
File file = new File(path);
if (file.exists()) {
return path;
}
try {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.icon);
File newFile = new File(this.getFilesDir().getAbsolutePath(), fileName);
OutputStream outputStream = new FileOutputStream(newFile);
bitmap.compress(Bitmap.CompressFormat.PNG, 100, outputStream);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
return path;
}
先将drawable里的icon图片保存到包目录下,记得得是png格式。然后通过jni调用即可在项目中获取icon图片的绝对路径,通过sprite 或者 imageview 创建图片。