Unity3d截图保存到Android相册的实现
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相册的实现的更多相关文章
- Android相机、相册获取图片显示并保存到SD卡
Android相机.相册获取图片显示并保存到SD卡 [复制链接] 电梯直达 楼主 发表于 2013-3-13 19:51:43 | 只看该作者 |只看大图 本帖最后由 happy小妖同学 ...
- android如何保存读取读取文件文件保存到SDcard
android如何保存读取读取文件文件保存到SDcard 本文来源于www.ifyao.com禁止转载!www.ifyao.com 上图为保存文件的方法体. 上图为如何调用方法体保存数据. 上面的截图 ...
- [置顶] Android学习系列-把文件保存到SD卡上面(6)
Android学习系列-把文件保存到SD卡上面(5) 一般多媒体文件,大文件需要保存到SD卡中.关键点如下: 1,SD卡保存目录:mnt/sdcard,一般采用Environment.getExter ...
- Android开发调试日志工具类[支持保存到SD卡]
直接上代码: package com.example.callstatus; import java.io.File; import java.io.FileWriter; import java.i ...
- Android—将Bitmap图片保存到SD卡目录下或者指定目录
直接上代码就不废话啦 一:保存到SD卡下 File file = new File(Environment.getExternalStorageDirectory(), System.currentT ...
- Android 程序drawable资源保存到data目录
今天做了个小功能,就是把我们程序Drawable里面的图片保存到data目录下面,然后另外一个程序需要读取data目录里面保存的图片.涉及了data目录读写.这功能看上去挺简单,不过实际做的时候还是遇 ...
- Android 将文件保存到SD卡,从卡中取文件,及删除文件
//保存到SD卡 private static String sdState = Environment.getExternalStorageState(); private static S ...
- Android把图片保存到SQLite中
1.bitmap保存到SQLite 中 数据格式:Blob db.execSQL("Create table " + TABLE_NAME + "( _id INTEGE ...
- Unity调用Android相册
最近有一个项目有这个需求,让用户上传自己的交易凭证的截图,之前因为对调Android原生的东西不太熟悉,就先放了一边 因为项目已经上线,只不过是该功能未开放而已,那么现在为什么要写这篇博客呢,是因为. ...
随机推荐
- AsyncTask简单获取网络图片的例子
//首先呢,添加网络权限 android.permission.INTERNET //然后,布局View img=(Image)findViewById(R.id.imageView1); btn=( ...
- 时间日期Date类型
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- Juniti学习总结
JUnit简介 JUnit是由 Erich Gamma和Kent Beck编写的一个回归测试框架(regression testing framework).JUnit测试是程序员测试,即所谓白盒测试 ...
- 在IIS 中如何配置URL Rewrite,并且利用出站规则保持被重写的Cookie的域
Url Rewrite配置 xx.aa.com/bb/test1.aspx 会重写到 bb.aa.com/test1.aspx 具体怎么配置入站 出站规则 结果:
- js获取时间搓
var oData=new Date().getTime(2016-01-16); console.log(oData);
- ntpd和ntpdate
以无GUI 的Ubuntu 为例 1. ntpdate ntpdate是Ubuntu发行版的标配.按Ubuntu14.04的官方文档(这里),Ubuntu在启动时,会调用ntpdate,根据Ubunt ...
- Axis2在Web项目中整合Spring
一.说明: 上一篇说了Axis2与Web项目的整合(详情 :Axis2与Web项目整合)过程,如果说在Web项目中使用了Spring框架,那么又改如何进行Axis2相关的配置操作呢? 二.Axis2 ...
- Linux下的hostname命令详解
1.临时修改: #hostname ***** //*****为修改的hostname 2.永久修改: # vi /etc/sysconfig/networkNETWORKING=yesHOSTNAM ...
- LeetCode292:Nim Game
You are playing the following Nim Game with your friend: There is a heap of stones on the table, eac ...
- Linux下安装protobuf并实现简单的客户端服务器端通信
http://code.google.com/p/protobuf/downloads/list上可以下载Protobuf的源代码. 安装步骤如下所示: 1>tar -xzf protobuf- ...