|  | @@ -10,6 +10,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |      public class PhotographSaveView : BaseView
 | 
	
		
			
				|  |  |      {
 | 
	
		
			
				|  |  |          private UI_PhotographSaveUI _ui;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          protected override void OnInit()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.OnInit();
 | 
	
	
		
			
				|  | @@ -21,6 +22,7 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              _ui.m_btnClose.onClick.Add(this.Hide);
 | 
	
		
			
				|  |  |              _ui.m_btnSave.onClick.Add(this.OnClickBtnSave);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |          protected override void OnShown()
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |              base.OnShown();
 | 
	
	
		
			
				|  | @@ -31,21 +33,21 @@ namespace GFGGame
 | 
	
		
			
				|  |  |              _ui.m_imgRes.SetSize(width, height);
 | 
	
		
			
				|  |  |              _ui.m_imgBorder.SetSize(width, height + 12);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        private void OnClickBtnSave()
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            string path = Application.persistentDataPath;
 | 
	
		
			
				|  |  | -            Debug.Log("文件路径path:" + path);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        protected override void OnHide()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            base.OnHide();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#if UNITY_ANDROID
 | 
	
		
			
				|  |  | -            int index = Application.persistentDataPath.IndexOf("Android");
 | 
	
		
			
				|  |  | -            path = index < 0 ? path : Application.persistentDataPath.Substring(0, index);
 | 
	
		
			
				|  |  | +        public override void Dispose()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            base.Dispose();
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -             path = "/sdcard/DCIM/";
 | 
	
		
			
				|  |  | +        private void OnClickBtnSave()
 | 
	
		
			
				|  |  | +        {
 | 
	
		
			
				|  |  | +            string path = Application.persistentDataPath + "/Pictures/WanshiJing/";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -#endif
 | 
	
		
			
				|  |  |              //判断目录是否存在,不存在则会创建目录
 | 
	
		
			
				|  |  |              if (!Directory.Exists(path))
 | 
	
		
			
				|  |  |              {
 | 
	
	
		
			
				|  | @@ -59,65 +61,23 @@ namespace GFGGame
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            string fileName = DateUtils.Instance.GetCurTime() + ".png";
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            string fileName = "wsj" + DateUtils.Instance.GetCurTime() + ".jpg";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            Debug.Log("文件路径:" + path);
 | 
	
		
			
				|  |  |              Texture2D tex = this.viewData as Texture2D;
 | 
	
		
			
				|  |  | -            byte[] bytes = tex.EncodeToPNG();//将纹理数据,转化成一个png图片
 | 
	
		
			
				|  |  | +            byte[] bytes = tex.EncodeToJPG();//将纹理数据,转化成一个jpg图片
 | 
	
		
			
				|  |  |              var filePath = path + fileName;
 | 
	
		
			
				|  |  |              File.WriteAllBytes(filePath, bytes);
 | 
	
		
			
				|  |  | -            //GetSaveState(path);
 | 
	
		
			
				|  |  | -            savePngAndUpdate(filePath);
 | 
	
		
			
				|  |  | +            UpdateSystemPhoto(filePath);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |          //调用iOS或Android原生方法保存图片后更新相册.
 | 
	
		
			
				|  |  | -        private void savePngAndUpdate(string fileName)
 | 
	
		
			
				|  |  | +        private void UpdateSystemPhoto(string filePath)
 | 
	
		
			
				|  |  |          {
 | 
	
		
			
				|  |  |  #if UNITY_ANDROID
 | 
	
		
			
				|  |  | -            GetAndroidJavaObject().Call("scanFile", fileName, "保存成功辣٩(๑>◡<๑)۶ "); //这里我们可以设置保存成功弹窗内容
 | 
	
		
			
				|  |  | +            AndroidJavaObject androidJavaObject = new AndroidJavaObject("com.gfg.gfglibrary.SaveImage"); //设置成我们aar库中的签名+类名
 | 
	
		
			
				|  |  | +            androidJavaObject.Call("scanFile", filePath, "已保存至相册"); //这里我们可以设置保存成功弹窗内容
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //用于获取Android原生方法类对象
 | 
	
		
			
				|  |  | -        private AndroidJavaObject GetAndroidJavaObject()
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            return new AndroidJavaObject("com.gfg.gfglibrary.SaveImage"); //设置成我们aar库中的签名+类名
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        private void GetSaveState(string path)
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -            Timers.inst.Add(1, 10, (param) =>
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -                if (File.Exists(path))
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    string[] paths = { path };
 | 
	
		
			
				|  |  | -                    ScanFile(paths);
 | 
	
		
			
				|  |  | -                    PromptController.Instance.ShowFloatTextPrompt("保存成功");
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            });
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        //刷新图片,显示到相册中
 | 
	
		
			
				|  |  | -        void ScanFile(string[] path)
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            using (AndroidJavaClass PlayerActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
 | 
	
		
			
				|  |  | -            {
 | 
	
		
			
				|  |  | -                AndroidJavaObject playerActivity = PlayerActivity.GetStatic<AndroidJavaObject>("currentActivity");
 | 
	
		
			
				|  |  | -                using (AndroidJavaObject Conn = new AndroidJavaObject("android.media.MediaScannerConnection", playerActivity, null))
 | 
	
		
			
				|  |  | -                {
 | 
	
		
			
				|  |  | -                    Conn.CallStatic("scanFile", playerActivity, path, null, null);
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        protected override void OnHide()
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            base.OnHide();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        public override void Dispose()
 | 
	
		
			
				|  |  | -        {
 | 
	
		
			
				|  |  | -            base.Dispose();
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 |