意见反馈增加图片
This commit is contained in:
parent
b11c5de681
commit
510cd11049
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
|
||||||
<application>
|
<application>
|
||||||
<activity android:name="com.unity3d.player.UnityPlayerActivity" android:theme="@style/UnityThemeSelector" >
|
<activity android:name="com.unityplugins.imageselector.TestMainActivity" android:theme="@style/UnityThemeSelector" android:screenOrientation="landscape" android:launchMode="singleTask" android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|uiMode|screenSize|smallestScreenSize|fontScale|layoutDirection|density" android:hardwareAccelerated="false">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.MAIN" />
|
<action android:name="android.intent.action.MAIN" />
|
||||||
<category android:name="android.intent.category.LAUNCHER" />
|
<category android:name="android.intent.category.LAUNCHER" />
|
||||||
@ -13,9 +13,26 @@
|
|||||||
<data android:scheme="powerfunx" android:host="app" />
|
<data android:scheme="powerfunx" android:host="app" />
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</activity>
|
</activity>
|
||||||
|
<activity
|
||||||
|
android:name="com.unityplugins.imageselector.SelectActivity">
|
||||||
|
</activity>
|
||||||
|
<!-- 模拟主项目中定义的其他FileProvider -->
|
||||||
|
<provider
|
||||||
|
android:name="android.support.v4.content.FileProvider"
|
||||||
|
android:authorities="${applicationId}.any_provider"
|
||||||
|
android:grantUriPermissions="true"
|
||||||
|
android:exported="false">
|
||||||
|
<meta-data
|
||||||
|
android:name="android.support.FILE_PROVIDER_PATHS"
|
||||||
|
android:resource="@xml/provider_paths" />
|
||||||
|
</provider>
|
||||||
</application>
|
</application>
|
||||||
|
|
||||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
|
||||||
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
<uses-permission android:name="android.permission.BLUETOOTH"/>
|
||||||
|
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
||||||
|
<uses-permission android:name="android.permission.CAMERA" />
|
||||||
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
|
<uses-feature android:name="android.hardware.bluetooth_le" android:required="false"/>
|
||||||
</manifest>
|
</manifest>
|
||||||
BIN
Assets/Plugins/Android/ImageSelector.jar
Normal file
BIN
Assets/Plugins/Android/ImageSelector.jar
Normal file
Binary file not shown.
32
Assets/Plugins/Android/ImageSelector.jar.meta
Normal file
32
Assets/Plugins/Android/ImageSelector.jar.meta
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6ea86a8936b718949b5501d873739db1
|
||||||
|
PluginImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
iconMap: {}
|
||||||
|
executionOrder: {}
|
||||||
|
defineConstraints: []
|
||||||
|
isPreloaded: 0
|
||||||
|
isOverridable: 0
|
||||||
|
isExplicitlyReferenced: 0
|
||||||
|
validateReferences: 1
|
||||||
|
platformData:
|
||||||
|
- first:
|
||||||
|
Android: Android
|
||||||
|
second:
|
||||||
|
enabled: 1
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Any:
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings: {}
|
||||||
|
- first:
|
||||||
|
Editor: Editor
|
||||||
|
second:
|
||||||
|
enabled: 0
|
||||||
|
settings:
|
||||||
|
DefaultValueInitialized: true
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
45
Assets/Plugins/Android/mainTemplate.gradle
Normal file
45
Assets/Plugins/Android/mainTemplate.gradle
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
// GENERATED BY UNITY. REMOVE THIS COMMENT TO PREVENT OVERWRITING WHEN EXPORTING AGAIN
|
||||||
|
|
||||||
|
apply plugin: 'com.android.library'
|
||||||
|
**APPLY_PLUGINS**
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
implementation fileTree(dir: 'libs', include: ['*.jar'])
|
||||||
|
implementation 'com.yuyh.imgsel:library:2.1.0'
|
||||||
|
implementation 'com.github.bumptech.glide:glide:3.7.0'
|
||||||
|
implementation 'com.facebook.fresco:fresco:0.6.0'
|
||||||
|
implementation(name: 'com.mapbox.android.unity-debug', ext:'aar')
|
||||||
|
implementation(name: 'libcore-release', ext:'aar')
|
||||||
|
implementation(name: 'libtelemetry-full-release', ext:'aar')
|
||||||
|
implementation(name: 'UnityCallWechatShare-release', ext:'aar')
|
||||||
|
}
|
||||||
|
|
||||||
|
android {
|
||||||
|
compileSdkVersion **APIVERSION**
|
||||||
|
buildToolsVersion '**BUILDTOOLS**'
|
||||||
|
|
||||||
|
compileOptions {
|
||||||
|
sourceCompatibility JavaVersion.VERSION_1_8
|
||||||
|
targetCompatibility JavaVersion.VERSION_1_8
|
||||||
|
}
|
||||||
|
|
||||||
|
defaultConfig {
|
||||||
|
minSdkVersion **MINSDKVERSION**
|
||||||
|
targetSdkVersion **TARGETSDKVERSION**
|
||||||
|
ndk {
|
||||||
|
abiFilters **ABIFILTERS**
|
||||||
|
}
|
||||||
|
versionCode **VERSIONCODE**
|
||||||
|
versionName '**VERSIONNAME**'
|
||||||
|
consumerProguardFiles 'proguard-unity.txt'**USER_PROGUARD**
|
||||||
|
}
|
||||||
|
|
||||||
|
lintOptions {
|
||||||
|
abortOnError false
|
||||||
|
}
|
||||||
|
|
||||||
|
aaptOptions {
|
||||||
|
ignoreAssetsPattern = "!.svn:!.git:!.ds_store:!*.scc:.*:!CVS:!thumbs.db:!picasa.ini:!*~"
|
||||||
|
}**PACKAGING_OPTIONS**
|
||||||
|
}**REPOSITORIES****SOURCE_BUILD_SETUP**
|
||||||
|
**EXTERNAL_SOURCES**
|
||||||
7
Assets/Plugins/Android/mainTemplate.gradle.meta
Normal file
7
Assets/Plugins/Android/mainTemplate.gradle.meta
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 27f3715cd06fd6c4f883fc6cf73e0632
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -76,7 +76,7 @@ public static class App
|
|||||||
public static float? topRectStartX { get; internal set; }
|
public static float? topRectStartX { get; internal set; }
|
||||||
|
|
||||||
public static WeChatController weChatController = WeChatController.Instance;
|
public static WeChatController weChatController = WeChatController.Instance;
|
||||||
|
public static ImageSelectorController imageSelectorController = ImageSelectorController.Instance;
|
||||||
public static Vector2 MobileResolution = new Vector2(844f, 390f);//移动端分辨率
|
public static Vector2 MobileResolution = new Vector2(844f, 390f);//移动端分辨率
|
||||||
public static Vector2 PcResolution = new Vector2(1600f, 900f);//PC端分辨率
|
public static Vector2 PcResolution = new Vector2(1600f, 900f);//PC端分辨率
|
||||||
public static int autoClearTimes = 30;
|
public static int autoClearTimes = 30;
|
||||||
|
|||||||
@ -1,22 +1,11 @@
|
|||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Create By Jooki: https://www.yuque.com/jooki
|
///
|
||||||
/// 使用流程:
|
|
||||||
/// WeChatController是一个单例, 请自行给变量 _className 赋值
|
|
||||||
/// 使用前先调用 Init() 进行初始化,然后调用 IsWeChatAppInstalled() 检查用户设备上是否安装了微信;
|
|
||||||
/// 之后为保险起见调用 IsWeChatAppInstalled() 判断微信是否已经安装;
|
|
||||||
/// 最后就是按照需要分享的消息类型调用对应的方法
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class ImageSelectorController
|
public class ImageSelectorController
|
||||||
{
|
{
|
||||||
/// <summary>
|
private AndroidJavaObject mainActivityObject = null;
|
||||||
/// com.unityplugins.wechatshare是在Android Studio中创建的 Module,
|
|
||||||
/// MainActivity 是一个Activity, 对外供C#调用的方法都写在这个Activity内
|
|
||||||
/// </summary>
|
|
||||||
private readonly string _className = "com.unityplugins.imageSelector.MainActivity";
|
|
||||||
private AndroidJavaClass mainActivityClass = null;
|
|
||||||
|
|
||||||
private static ImageSelectorController _instance;
|
private static ImageSelectorController _instance;
|
||||||
public static ImageSelectorController Instance
|
public static ImageSelectorController Instance
|
||||||
@ -33,15 +22,14 @@ public class ImageSelectorController
|
|||||||
private ImageSelectorController()
|
private ImageSelectorController()
|
||||||
{
|
{
|
||||||
#if UNITY_ANDROID
|
#if UNITY_ANDROID
|
||||||
mainActivityClass = new AndroidJavaClass(_className);
|
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
|
||||||
// 第一个参数: MainActivity中的方法名
|
mainActivityObject = jc.GetStatic<AndroidJavaObject>("currentActivity");
|
||||||
// 第二、三个参数: 分别是SendMessageToUnity需要接收的第一和第二个参数,对比上面Java的代码
|
|
||||||
#elif UNITY_IOS
|
#elif UNITY_IOS
|
||||||
//RegisterApp(_APP_ID);
|
//RegisterApp(_APP_ID);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
public void Select()
|
public void Select()
|
||||||
{
|
{
|
||||||
mainActivityClass.CallStatic("Select");
|
mainActivityObject.Call("Select");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -75,26 +75,32 @@ public class FeedbackController : PFUIPanel
|
|||||||
main.Find("Time").Find("Value").Find("Text").GetComponent<Text>().text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
main.Find("Time").Find("Value").Find("Text").GetComponent<Text>().text = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GameObject selectObject = null;
|
||||||
void AddImage(BaseEventData e,int index)
|
void AddImage(BaseEventData e,int index)
|
||||||
{
|
{
|
||||||
#if UNITY_ANDROID || UNITY_IOS
|
#if UNITY_ANDROID || UNITY_IOS
|
||||||
//App.ImageSelectorController.Select();
|
selectObject = ((PointerEventData)e).pointerEnter;
|
||||||
|
App.imageSelectorController.Select();
|
||||||
#else
|
#else
|
||||||
var self = ((PointerEventData)e).pointerEnter;
|
var self = ((PointerEventData)e).pointerEnter;
|
||||||
Utils.OpenFile((path) =>
|
Utils.OpenFile((path) =>
|
||||||
{
|
{
|
||||||
if (paths.ContainsValue(path))
|
HandlePath(self, path);
|
||||||
{
|
|
||||||
Utils.showToast(gameObject, "Picture already exists, please choose another picture");//图片已存在,请选择其他图片
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
self.GetComponent<Image>().sprite = Utils.PngToSprite(path, 110, 110);
|
|
||||||
self.transform.Find("close").gameObject.SetActive(true);
|
|
||||||
paths[self.name] = path;
|
|
||||||
});
|
});
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
}
|
}
|
||||||
|
void HandlePath(GameObject self,string path)
|
||||||
|
{
|
||||||
|
if (paths.ContainsValue(path))
|
||||||
|
{
|
||||||
|
Utils.showToast(gameObject, "Picture already exists, please choose another picture");//图片已存在,请选择其他图片
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
self.GetComponent<Image>().sprite = Utils.PngToSprite(path, 110, 110);
|
||||||
|
self.transform.Find("close").gameObject.SetActive(true);
|
||||||
|
paths[self.name] = path;
|
||||||
|
}
|
||||||
void DelImage(BaseEventData e,Transform self,int index)
|
void DelImage(BaseEventData e,Transform self,int index)
|
||||||
{
|
{
|
||||||
self.GetComponent<Image>().sprite = plus;
|
self.GetComponent<Image>().sprite = plus;
|
||||||
@ -134,6 +140,11 @@ public class FeedbackController : PFUIPanel
|
|||||||
public void OnMobileImageSelect(string res)
|
public void OnMobileImageSelect(string res)
|
||||||
{
|
{
|
||||||
Debug.Log(res);
|
Debug.Log(res);
|
||||||
Utils.showToast(gameObject, res, type: 1);
|
if (res.IndexOf("true,") == 0 && selectObject!=null)
|
||||||
|
{
|
||||||
|
var path = res.Replace("true,", "");
|
||||||
|
HandlePath(selectObject, path);
|
||||||
|
}
|
||||||
|
//Utils.showToast(gameObject, res, type: 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user