现在解决 程序如下所示:



1、采用 jni 转让 java 办法 启动专辑选择框

2、采用java得到的图片将被保存到本地

3、采用Cocos2d-x于 CCImage 阅读



JAVA码如下面:



    //启动图片选择框

      private void launchCamera()

      {

          // TODO Auto-generated method stub

          Intent intent = new Intent();

          intent.setType("image/*");//set intent type

          intent.setAction(Intent.ACTION_GET_CONTENT);

          

          //取得图片信息返回MainActivity                

          startActivityForResult(intent,1);

      }

      

      //图片选择回调

      protected void onActivityResult(int requestCode,int resultCode,Intent data)

      {

          if(resultCode==RESULT_OK)

          {

              Uri uri = data.getData();

              

              //通过URI获取图片绝对地址            

              String[] proj = { MediaStore.Images.Media.DATA };

              

              Cursor cursor = managedQuery(uri,proj,null,null,null);

              

              int actual_image_column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

              

              //游标跳到首位,防止越界            

              cursor.moveToFirst();

              

              String img_path = cursor.getString(actual_image_column_index);

        

              //通过地址获得位图信息            

              Bitmap bitmap =BitmapFactory.decodeFile(img_path);                

              

              saveMyBitmap("001", bitmap);

              

           }

          

      }



      //保存图片到本地

      private void saveMyBitmap(String bitName,Bitmap mBitmap) 

      {

              File f = new File("/sdcard/" + bitName + ".png");

              try {

                      

                      f.createNewFile();

                      

              } catch (IOException e) {

               // TODO Auto-generated catch block

                      

              }

              

              FileOutputStream fOut = null;

              try {

              

                      fOut = new FileOutputStream(f);

                      

              } catch (FileNotFoundException e) {

               

                      e.printStackTrace();

              }

              

              mBitmap.compress(Bitmap.CompressFormat.PNG, 100, fOut);

              

              try {

              

                      fOut.flush();

                      

              } catch (IOException e) {

               

                      e.printStackTrace();

              }

              

              try {

               

                      fOut.close();

                      

              } catch (IOException e) {

               

                      e.printStackTrace();

              }

              

      }

      





C++代码例如以下:



//读取本地存储数据

CCSprite* LoadingLayer::loadImage()

{

    CCSprite* tempsprite = NULL;

    

    const char* path = "/sdcard/001.png";

    FILE* fp = fopen(path, "rb");

    if (!fp)

    {

        return tempsprite;

    }

    

    fseek(fp,0,SEEK_END);

    int len = ftell(fp);

    fseek(fp,0,SEEK_SET);

    char* buf = (char*)malloc(len);

    fread(buf,len,1,fp);

    fclose(fp);

    

    if(len==0 || buf==NULL)

    {

        return tempsprite;

    }

    

    CCImage* img = new CCImage;

    img->initWithImageData(buf,len);

    free(buf);

    cocos2d::CCTexture2D* texture = new cocos2d::CCTexture2D();

    texture->initWithImage(img);

    img->release();

    tempsprite = CCSprite::createWithTexture(texture);

    texture->release();

    

    return tempsprite;

    

}

android台 cocos2d-x 翻阅相册数据的更多相关文章

  1. Android 7.0+相机、相册、裁剪适配问题

    Android 7.0+相机.相册.裁剪适配问题 在manifest中: <provider android:name="android.support.v4.content.File ...

  2. Android中使用Gson解析JSON数据的两种方法

    Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下   Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...

  3. Android开发中Bundle用法包裹数据(转)

    Android开发中Bundle用法包裹数据 Bundle的经典用法,包裹数据放入Intent中,目的在于传输数据. SDK 里是这样描述: A mapping from String values ...

  4. Android Volley和Gson实现网络数据加载

    Android Volley和Gson实现网络数据加载 先看接口 1 升级接口 http://s.meibeike.com/mcloud/ota/cloudService POST请求 参数列表如下 ...

  5. I.MX6 Android Linux shell MMPF0100 i2c 设置数据

    #!/system/bin/busybox ash # # I.MX6 Android Linux shell MMPF0100 i2c 设置数据 # 说明: # 本文主要记录通过shell脚本来设置 ...

  6. I.MX6 Android Linux shell MMPF0100 i2c 获取数据

    #!/system/bin/busybox ash # # I.MX6 Android Linux shell MMPF0100 i2c 获取数据 # 说明: # 本文主要记录通过shell脚本来获取 ...

  7. android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下   首先客户端从服务器端获取json数据 1.利用HttpUrlConnection /** * 从指定的U ...

  8. 【Android 复习】 : Activity之间传递数据的几种方式

    在Android开发中,我们通常需要在不同的Activity之间传递数据,下面我们就来总结一下在Activity之间数据传递的几种方式. 1. 使用Intent来传递数据 Intent表示意图,很多时 ...

  9. (转)android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下       首先客户端从服务器端获取json数据 1.利用HttpUrlConnection   复制代码 ...

随机推荐

  1. Eclipse工具的问题

    1 Eclipse采用ctrl抄 粘贴很卡 Eclipse -- Windows->Preferences->General->Editors->Text Editors-&g ...

  2. Mpmovieplayercontroller 黑屏

    MPMoviePlayerController * moviePlayer; 原因是:你在声明movieplayer的时候,声明成为了局部变量,与此同一时候你的project支持ARC,所以会出现黑屏 ...

  3. Maven搭建SpringMVC+Hibernate项目详解(转)

    前言 今天复习一下SpringMVC+Hibernate的搭建,本来想着将Spring-Security权限控制框架也映入其中的,但是发现内容太多了,Spring-Security的就留在下一篇吧,这 ...

  4. Web静态和动态项目委托代理基于面向方面编程AOP

    本来每天更新,我一般喜欢晚上十二点的时候发文章,结果是不是愚人节?校内网也将是非常有趣,破,把我给打. ..好吧-从今天开始的话题AOP.AOP太重要了,所以把第二篇文章谈论这个话题,AOP它是Spr ...

  5. UVA 439 Knight Moves(BFS)

    Knight Moves option=com_onlinejudge&Itemid=8&category=11&page=show_problem&problem=3 ...

  6. maven插件的生命周期的详细说明(两)

    插件配置 定义解释:插件目标 当我们了解了maven插件之后.我们发现假设为每个功能编写一个独立的插件显然是不可取的,由于这些任务背后有非常多能够复用的代码.因此,把这些功能聚集在一个插件里,每个功能 ...

  7. JAVA学习 分析Servlet

    一个.什么是Servlet Servlet是一种在server端执行的java编写的程序,是依照Servlet规范编写的一个java类. 二.Servlet的工作过程 如图所看到的:为了实现客户与se ...

  8. 解决Virtual Box 安装Mac OS X当出现“hfs: summary table not allowed on FS with block size of 2048”问题

    解决Virtual Box 安装Mac OS X当出现"hfs: summary table not allowed on FS with block size of 2048"问 ...

  9. j经常使用ava应用server

    什么是应用server它?它主要提供的执行环境的应用程序,为组件提供服务. 要了解更多关于,您可以查看我的博客:何为容器? Java 的应用server非常多,从功能上分为两类:WEB 应用serve ...

  10. mysql数据文件迁移到新的硬盘分区的方法

    该系统增加了一个硬盘.要创建新的分区/data文件夹,mysql对于数据文件夹/var/lib/mysql 1.  停止mysql维修 [root@localhost~]# service mysql ...