Unity3d截图保存到Android相册的实现
-----------------------------ultrasoon 季风原创---------------------------------------

1.Unity3d场景中先加入屏幕抓图功能:

Application.CaptureScreenshot("Screenshot.png");

这样Screenshot.png就存到了你的app沙盒中,请检查/sdcard/Android/data/com.ultrasoon.MyApp/,这个是我的app沙盒路径.
这个是第一步,之后还要保存到相册中。

2.unity中点击保存到相册按钮
unity部分代码:

 1 public static AndroidJavaClass plugin;
2
3
4 void Awake ()
5 {
6
7 if(Application.platform == RuntimePlatform.Android ) {
8 plugin = new AndroidJavaClass("com.ultrasoon.MyApp.Binding");
9 }
10 }
11 void OnGUI()
12 {
13 if (GUI.Button(new Rect(20, 20, 100, 5), "save"))
14 {
15 //保存到相册,调用自己写的Binding插件
16 plugin.CallStatic("savebuttonClicked");
17
18 }
19 }

3.Binding插件的实现.import对应的package

Binding.cs部分代码:

 1 public static Context context;
2
3 // 保存到相册
4 public static void savebuttonClicked() {
5
6 //取得你XXXXXXXActivity的context.用自己的,不能用this,插件中调用静态的方法
7 context = XXXXXXXActivity.getApplicationContext();
8
9 XXXXXXXActivity.runOnUiThread(new Runnable() {
10 public void run() {
11 // file:///sdcard/Android/data/com.ultrasoon.MyApp/files/Screenshot.png
12 Bitmap bitmap = Binding
13 .getDiskBitmap("/sdcard/Android/data/com.ultrasoon.MyApp/files/Screenshot.png");
14 if (bitmap != null) {
15
16 MediaStore.Images.Media.insertImage(
17 context.getContentResolver(), bitmap, "myPhoto", "");
18 context.sendBroadcast(new Intent(
19 Intent.ACTION_MEDIA_MOUNTED,
20 Uri.parse("file://"
21 + Environment.getExternalStorageDirectory())));
22 Toast.makeText(
23 context,
24 " 恭喜你!照片已保存到你的相册中! ", Toast.LENGTH_SHORT).show();
25 }
26 }
27 });
28
29 }
30
31 // 读图
32 public static Bitmap getDiskBitmap(String url) {
33
34 Bitmap bitmap = null;
35 try {
36 File file = new File(url);
37 if (file.exists()) {
38 bitmap = BitmapFactory.decodeFile(url);
39
40 }
41 } catch (Exception e) {
42
43 }
44 return bitmap;
45 }

4.编译打包插件Binding,打包成jar,复制到unity的Asserts中下面的plugins目录里面。

OK了。
具体细节希望自己摸索!

-----------------------------ultrasoon 季风原创---------------------------------------

Unity3d截图保存到Android相册的实现的更多相关文章

  1. Android相机、相册获取图片显示并保存到SD卡

    Android相机.相册获取图片显示并保存到SD卡 [复制链接]   电梯直达 楼主    发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图  本帖最后由 happy小妖同学 ...

  2. android如何保存读取读取文件文件保存到SDcard

    android如何保存读取读取文件文件保存到SDcard 本文来源于www.ifyao.com禁止转载!www.ifyao.com 上图为保存文件的方法体. 上图为如何调用方法体保存数据. 上面的截图 ...

  3. [置顶] Android学习系列-把文件保存到SD卡上面(6)

    Android学习系列-把文件保存到SD卡上面(5) 一般多媒体文件,大文件需要保存到SD卡中.关键点如下: 1,SD卡保存目录:mnt/sdcard,一般采用Environment.getExter ...

  4. Android开发调试日志工具类[支持保存到SD卡]

    直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...

  5. Android—将Bitmap图片保存到SD卡目录下或者指定目录

    直接上代码就不废话啦 一:保存到SD卡下 File file = new File(Environment.getExternalStorageDirectory(), System.currentT ...

  6. Android 程序drawable资源保存到data目录

    今天做了个小功能,就是把我们程序Drawable里面的图片保存到data目录下面,然后另外一个程序需要读取data目录里面保存的图片.涉及了data目录读写.这功能看上去挺简单,不过实际做的时候还是遇 ...

  7. Android 将文件保存到SD卡,从卡中取文件,及删除文件

    //保存到SD卡 private static String sdState = Environment.getExternalStorageState();     private static S ...

  8. Android把图片保存到SQLite中

    1.bitmap保存到SQLite 中 数据格式:Blob db.execSQL("Create table " + TABLE_NAME + "( _id INTEGE ...

  9. Unity调用Android相册

    最近有一个项目有这个需求,让用户上传自己的交易凭证的截图,之前因为对调Android原生的东西不太熟悉,就先放了一边 因为项目已经上线,只不过是该功能未开放而已,那么现在为什么要写这篇博客呢,是因为. ...

随机推荐

  1. 数往知来 CSS<十二>

    div+css基础 一.外部样式<!--外部样式可以使网页与样式分离,分工处理 1.写网页,主要提供内容,一般都会有固定的结构,具有id等属性的标签包括特定的内容 2.根据结构写样式另存为css ...

  2. windows创建虚拟界面

    定义 VDesktopName: PAnsiChar; //虚拟桌面名 VDesktop: HDESK; //虚拟桌面   创建 VDesktopName := 'MYDESK'; VDesktop ...

  3. Numpy中的矩阵计算

    矩阵初始化 支持matlab语句初始化,支持narray和array初始化. >>> import numpy as np >>> M = np.matrix(&q ...

  4. 桶排序-OC

    NSArray * b = @[@,@,@,@,@]; NSMutableArray *a = @[].mutableCopy; ; i<; i++) { a[i] = @; } for (NS ...

  5. linux du命令: 显示文件、目录大小

    介绍:du命令用于显示指定文件(夹)在磁盘中所占的空间信息.假如指定的文件参数实际上是一个目录,就要计算该目录下的所有文件.假如 没有提供文件参数,执行du命令,显示当前目录内的文件占用空间信息. 语 ...

  6. oracle数据库连接字符串

    不在项目加入tsname.ora的托管写法: <add name="CONN" connectionString="data source=127.0.0.1:15 ...

  7. JS、OnClientClick、OnClick

    OnClientClick是客户端事件处理方法,一般采用JavaScript来进行处理,也就是直接在浏览器端运行,一点击就运行: OnClick是服务器端事件处理方法,在服务器端也就是IIS中运行,点 ...

  8. POJ1948Triangular Pastures(DP)

    POJ1948http://poj.org/problem?id=1948 题目大意就是说给你n个木棍让你用它们摆成一个三角形  使得这个三角形的面积最大. 这个题我之前想的时候一直纠结怎么通过之前的 ...

  9. hdoj 5375 Gray Code

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 编码规则:tmp = XOR(gr[i],gr[i-1]); 算是找规律的题目吧,考虑?前后字符 ...

  10. jsp页面加载readyState的五种状态根据我们状态添加进度条

    这段代码放在页面最下面 原文如下: document.onreadystatechange = subSomething;//当页面加载状态改变的时候执行这个方法. function subSomet ...