亲测可行:

http://www.taidous.com/bbs/forum.php?mod=viewthread&tid=24476


总结:

第一步:新建Android工程,导入unity class.jar包(Unity下找classes.jar, 具体路径为:Unity\Editor\Data\PlaybackEngines\androidplayer\release\bin\classes.jar),写一个保存函数:

package com.zz.cutimage;import java.io.File;import java.io.FileNotFoundException;import java.lang.reflect.Field; import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.provider.MediaStore;import android.util.Log;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import com.unity3d.player.UnityPlayerActivity;public class MainActivity extends UnityPlayerActivity {         //        Button btn ;//        @Override//        protected void onCreate(Bundle savedInstanceState) {//                super.onCreate(savedInstanceState);//                setContentView(R.layout.main);//                btn = (Button)findViewById(R.id.btn);//                btn.setOnClickListener(new OnClickListener() {//                        //                        @Override//                        public void onClick(View arg0) {//                                //                                saveImageToGallery(MainActivity.this, "Environment.getExternalStorageDirectory().getPath() + File.separator + taidous/a.jpg");//                        }//                });//        }                 public static void SaveImageToGallery(String path)         {            try{                Class<?> m_ClassUnityPlayer = Class.forName("com.unity3d.player.UnityPlayer");                Field m_CurrentActivityFieldUnityPlayer = m_ClassUnityPlayer.getField("currentActivity");                Activity currentActivity = (Activity) m_CurrentActivityFieldUnityPlayer.get(m_ClassUnityPlayer);                Context context = currentActivity;                File file = new File(path);                Log.i("SaveImageToGallery", file.getPath() + "--" + file.length());                String url = "";                // 其次把文件插入到系统图库                try {                        url = MediaStore.Images.Media.insertImage(context.getContentResolver(),                                            file.getAbsolutePath(), file.getName(), null);                } catch (FileNotFoundException e) {                    e.printStackTrace();                }                Log.i("SaveImageToGallery", file.getPath() + "--" + file.length());                // 最后通知图库更新                context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("file://" + file.getPath())));            }catch(Exception e)            {                     Log.e("SaveImageToGallery", e.getMessage());            }        }}

第二部:导出jar包到unity,unity在Androidadminfest中包含包:

            



第三部:unity脚本中调用:

public void OnClickSavePhoto(){var bytes = photoTex2d.EncodeToPNG();string path = Application.persistentDataPath + "/" + System.DateTime.Now.ToLongTimeString() + ".png";#if UNITY_EDITORFile.WriteAllBytes(Application.dataPath + "/SavedScreen.png", bytes);#elif UNITY_ANDROID || UNITY_IPHONEFile.WriteAllBytes(path, bytes);#endifsharePhotoPanel.SetActive(false);#if UNITY_ANDROIDtry{AndroidJavaClass testActivityClass = new AndroidJavaClass("com.zz.cutimage.MainActivity");Debug.LogWarning("screenShot in android");if (testActivityClass != null){Debug.LogWarning("testActivityClass note null");object[] objs = new object[] { path };testActivityClass.CallStatic("SaveImageToGallery", objs);}}catch (System.Exception e){Debug.LogError(e);}#endif}



更多相关文章

  1. Ubuntu 10.10 64bit下使用Android(安卓)NDK r6编译FFmpeg 0.8.1
  2. 使用Android(安卓)Studio进行cocos2d-x开发
  3. 从任意位置加载XML布局
  4. Android(安卓)Studio 第一次安装可能遇到的问题
  5. Android(安卓)获取存储卡路径和空间使用情况
  6. 修改android4.4图库系列二——自定义菜单
  7. 由于android-sdk安装到Program Files目录下造成的启动错误
  8. 移动平台自动化测试从零开始-MonkeyRunner工具使用 (第一节)
  9. LINUX下Android(安卓)NDK下载并配置

随机推荐

  1. SnackBar学习记录
  2. RN填坑之旅
  3. rust on android
  4. Android中textview字体动画
  5. React-native 问题汇总
  6. Android(安卓)下拉控件:Spinner
  7. Android(安卓)近场通信(NFC)
  8. adb for remote connections
  9. android contentProvider 小例子
  10. Android(安卓)resource notlong / long i