现在解决 程序如下所示:



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. debain install scim

    1. su input root pwd 2. apt-cache search scim apt-get install scim apt-cache search scim-pinyin apt- ...

  2. 重写onBackPressed方法

    android手机back按键响应方法重构: long exitTime = System.currentTimeMillis() - 2000; public void onBackPressed( ...

  3. SignalR与ActiveMQ

    SignalR与ActiveMQ结合构建实时通信   一.概述 本教程主要阐释了如何利用SignalR与消息队列的结合,实现不同客户端的交互 SignalR如何和消息队列交互(暂使用ActiveMQ消 ...

  4. WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放、播放、暂停、可拖动播放进度效果实现

    原文:WPF技术触屏上的应用系列(三): 视频播放器的使用及视频播放.播放.暂停.可拖动播放进度效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,5 ...

  5. 轻量级的内部测试过程r \\ u0026研发团队

    对于一个r \\ u0026研发团队的目的,标准化的工作流程资产不可或缺的一部分,特别是对于初创的r \\ u0026研发团队方面.很多r \\ u0026研发管理是不够完整.如何理解的研发团队中的各 ...

  6. C语言习题 链表建立,插入,删除,输出

    Problem B: C语言习题 链表建立,插入,删除,输出 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 222  Solved: 92 [Subm ...

  7. 发现SQL Server惊天大秘密!!

    原文:发现SQL Server惊天大秘密!! --set statistics xml onCREATE TABLE T_TEST(ID INT IDENTITY PRIMARY KEY,Create ...

  8. Windows Phone 同步方式获取网络类型

    原文:Windows Phone 同步方式获取网络类型 在Windows Phone 开发中有时候需要获取设备当前连接网络的类型,是Wifi,还是2G,3G,或者4G,SDK中提供获取网络类型的API ...

  9. SQLSERVER PRINT语句的换行

    原文:SQLSERVER PRINT语句的换行 SQLSERVER  PRINT语句的换行 想在输出的PRINT语句里面换行,可以这样做 /* SQL的换行 制表符 CHAR(9) 换行符 CHAR( ...

  10. 【转】JTree调用UpdateUI()抛空指针

    最近在做东西时发现,当在线程里面刷新JTree时,有时会出现空指针错误,在网上查了很久,终于发现以下解决方法: JTree中调用UpdateUI()报以下错误 java.lang.NullPointe ...