意见反馈增加图片

This commit is contained in:
CaiYanPeng 2021-09-07 11:00:32 +08:00
parent b11c5de681
commit 510cd11049
8 changed files with 130 additions and 30 deletions

View File

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<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>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
@ -13,9 +13,26 @@
<data android:scheme="powerfunx" android:host="app" />
</intent-filter>
</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>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<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"/>
</manifest>

Binary file not shown.

View 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:

View 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**

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 27f3715cd06fd6c4f883fc6cf73e0632
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -76,7 +76,7 @@ public static class App
public static float? topRectStartX { get; internal set; }
public static WeChatController weChatController = WeChatController.Instance;
public static ImageSelectorController imageSelectorController = ImageSelectorController.Instance;
public static Vector2 MobileResolution = new Vector2(844f, 390f);//移动端分辨率
public static Vector2 PcResolution = new Vector2(1600f, 900f);//PC端分辨率
public static int autoClearTimes = 30;

View File

@ -1,22 +1,11 @@
using System.Runtime.InteropServices;
using UnityEngine;
/// <summary>
/// Create By Jooki: https://www.yuque.com/jooki
/// 使用流程:
/// WeChatController是一个单例 请自行给变量 _className 赋值
/// 使用前先调用 Init() 进行初始化,然后调用 IsWeChatAppInstalled() 检查用户设备上是否安装了微信;
/// 之后为保险起见调用 IsWeChatAppInstalled() 判断微信是否已经安装;
/// 最后就是按照需要分享的消息类型调用对应的方法
///
/// </summary>
public class ImageSelectorController
{
/// <summary>
/// com.unityplugins.wechatshare是在Android Studio中创建的 Module,
/// MainActivity 是一个Activity 对外供C#调用的方法都写在这个Activity内
/// </summary>
private readonly string _className = "com.unityplugins.imageSelector.MainActivity";
private AndroidJavaClass mainActivityClass = null;
private AndroidJavaObject mainActivityObject = null;
private static ImageSelectorController _instance;
public static ImageSelectorController Instance
@ -33,15 +22,14 @@ public class ImageSelectorController
private ImageSelectorController()
{
#if UNITY_ANDROID
mainActivityClass = new AndroidJavaClass(_className);
// 第一个参数: MainActivity中的方法名
// 第二、三个参数: 分别是SendMessageToUnity需要接收的第一和第二个参数对比上面Java的代码
AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
mainActivityObject = jc.GetStatic<AndroidJavaObject>("currentActivity");
#elif UNITY_IOS
//RegisterApp(_APP_ID);
#endif
}
public void Select()
{
mainActivityClass.CallStatic("Select");
mainActivityObject.Call("Select");
}
}

View File

@ -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");
}
GameObject selectObject = null;
void AddImage(BaseEventData e,int index)
{
#if UNITY_ANDROID || UNITY_IOS
//App.ImageSelectorController.Select();
#else
selectObject = ((PointerEventData)e).pointerEnter;
App.imageSelectorController.Select();
#else
var self = ((PointerEventData)e).pointerEnter;
Utils.OpenFile((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;
HandlePath(self, path);
});
#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)
{
self.GetComponent<Image>().sprite = plus;
@ -134,6 +140,11 @@ public class FeedbackController : PFUIPanel
public void OnMobileImageSelect(string 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);
}
}