Camera360编辑SDK 接入指南(Android)

1.
简介

简介

这篇文档将指导您使用Android Camera360编辑SDK创建一个简单的Demo工程

Camera360 SDK for ANDROID V1.2.0 下载 (Gradle)

2. 前置条件

在您开始接入之前,请确定下面的条件已经满足:

  • 您需要在官网上注册应用程序(http://sdk.camera360.com)
  • 您需要获取到您的应用程序对应的API Key
  • 确保Android SDK在您的系统中已经正确的完成安装和配置
  • 确保Android Build Tools 19.1.0或以上在您的系统中已经正确的安装

3. 系统要求

使用Android Camera360编辑SDK需满足下面的系统要求:

  • 支持Android 4.0+ (API Level 14, minSdkVersion=14)
  • 编译时需使用Android 4.4 (API Level 19, targetSdkVersion=19)

4. 工程环境配置

4.1 使用Android Studio

1、在App工程中,在Android Studio菜单栏选择File->New Module:

3. 系统要求

使用Android Camera360编辑SDK需满足下面的系统要求:

  • 支持Android 4.0+ (API Level 14, minSdkVersion=14)
  • 编译时需使用Android 4.4 (API Level 19, targetSdkVersion=19)

4. 工程环境配置

4.1 使用Android Studio

1、在App工程中,在Android Studio菜单栏选择File->New Module:

Camera360编辑SDK 接入指南(Android)_第1张图片

2、选择Importing Existing Project,并点击Next:

Camera360编辑SDK 接入指南(Android)_第2张图片

3、在界面中选择PG_Edit_SDK工程路径,点击Next:

Camera360编辑SDK 接入指南(Android)_第3张图片

4、在窗口中点击Finish:

Camera360编辑SDK 接入指南(Android)_第4张图片

5、此时模块已完成导入,接下来需要建立App工程与SDK工程之间的依赖,在App工程点击右键选择Open Module Settings:

Camera360编辑SDK 接入指南(Android)_第5张图片

6、在窗口中左侧列表选择App工程模块,右侧Tab选择Dependency标签栏,点击下方+号选择Module Dependency:

Camera360编辑SDK 接入指南(Android)_第6张图片

7、在弹出窗口中选择PG_Edit_SDK模块并点击OK:

Camera360编辑SDK 接入指南(Android)_第7张图片

8、这时在Dependencies窗口中应该能看见PG_Edit_SDK模块,点击OK完成工程导入:

Camera360编辑SDK 接入指南(Android)_第8张图片

4.2 使用Eclipse

1、在App工程中,在Package Explore中右键->选择Import

Camera360编辑SDK 接入指南(Android)_第9张图片

2、在弹出的Import窗口中选择:Existing Android Code Into Workspace,点击Next

Camera360编辑SDK 接入指南(Android)_第10张图片

3、在右侧点击Browse,选择下载的SDK代码路径,并点击确定,此时下方Projects列表会显示PG_Edit_SDK工程,接下来点击Finish

Camera360编辑SDK 接入指南(Android)_第11张图片

4、此时在左侧Package Explore中能看见刚导入的PG_Edit_SDK工程,下面需要建立App与SDK工程的依赖关系,在App工程点击右键选择Properties:

Camera360编辑SDK 接入指南(Android)_第12张图片

5、在窗口左边选择列表中选择Android,点击右侧Add按钮:

Camera360编辑SDK 接入指南(Android)_第13张图片

6、在窗口中选择PG_Edit_SDK工程,点击OK:

Camera360编辑SDK 接入指南(Android)_第14张图片

7、此时在窗口Library列表中能看见PG_Edit_SDK工程,点击OK,完成工程导入:

Camera360编辑SDK 接入指南(Android)_第15张图片

8、将assets目录中的内容拷贝到您的App工程的assets目录下

5. AndroidManifest.xml配置

5.1 添加API Key

标签内添加meta-data入口:


android:name="EDIT_SDK_KEY"

android:value="您的API Key"/>


将android:value中的内容替换为您的API Key


接下来在标签内添加组件meta-data入口:

android:name="BD_APP_ID"

android:value="ea8d04692735bc1f"/>


android:name="BD_APP_SECRET"

android:value="vCGG9QZ94tcGxTjangCc_b_VuXwmfGd2"/>

5.2 添加权限

Camera360编辑SDK需要添加部分系统权限,请您在标签内添加下列入口:

android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

android:name="android.permission.ACCESS_WIFI_STATE" />

android:name="android.permission.ACCESS_NETWORK_STATE" />

android:name="android.permission.INTERNET" />

android:name="android.permission.READ_LOGS" />

android:name="android.permission.READ_PHONE_STATE" />

android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

5.3 添加组件

标签内添加组件入口:


android:name="us.pinguo.edit.sdk.PGEditActivity"

android:screenOrientation="portrait"

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" />


android:name="us.pinguo.bigdata.BDUpService"

android:process=":bdupload">


6. 调用Camera360编辑SDK

6.1 初始化SDK

在您的Application onCreate方法中执行下列代码:


PGEditImageLoader.initImageLoader(this);

PGEditSDK.instance().initSDK(this);

6.2 开始编辑

您只需要在您的Activity中执行下面的代码即可:


PGEditSDK.instance().startEdit(this, PGEditActivity.class, inputPath, outputPath);


其中inputPath为输入图片文件的绝对路径,outputPath为输出图片文件的绝对路径

6.3 获取编辑结果

当用户在PGEditActivity中点击了”保存"按钮,您Activity中的onActivityResult方法将被触发,同时会返回resultCode和data,您可以按照下面的代码进行处理:


@Override

protected void onActivityResult(

int requestCode, int resultCode, Intent data) {


super.onActivityResult(requestCode, resultCode, data);


if (requestCode == PGEditSDK.PG_EDIT_SDK_REQUEST_CODE

&& resultCode == Activity.RESULT_OK) {


PGEditResult editResult = PGEditSDK.instance().handleEditResult(data);


// 获取编辑后的缩略图

Bitmap thumbNail = editResult.getThumbNail();


// 获取编辑后的大图路径

String resultPhotoPath = editResult.getReturnPhotoPath();

}


if (requestCode == PGEditSDK.PG_EDIT_SDK_REQUEST_CODE

&& resultCode == PGEditSDK.PG_EDIT_SDK_RESULT_CODE_CANCEL) {

//用户取消编辑

}


if (requestCode == PGEditSDK.PG_EDIT_SDK_REQUEST_CODE

&& resultCode == PGEditSDK.PG_EDIT_SDK_RESULT_CODE_NOT_CHANGED) {

// 照片没有修改

}

}


PGEditResult中会返回编辑结果,其中:

  • Bitmap getThumbNail()接口会返回编辑后的缩略图
  • String getResturnPhotoPath()接口会返回编辑后的大图路径

7. Proguard混淆

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

-dontshrink
-dontwarn

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public class * extends android.view.View
-keep public class * extends android.os.Parcel
-keep public class * implements android.os.Parcelable,


-keepclasseswithmembernames class * {

native ;

}


-keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet);

}


-keepclasseswithmembers class * {

public (android.content.Context, android.util.AttributeSet, int);

}


-keepclassmembers class * extends android.app.Activity {

public void *(android.view.View);

}


-keepclassmembers enum * {

public static **[] values();

public static ** valueOf(java.lang.String);

}


-keep class * implements android.os.Parcelable {

public static final android.os.Parcelable$Creator *;

}


-keep class android.support.v4.**{*;}
-keep class com.pinguo.Camera360Lib.**{*;}
-keep class com.nostra13.universalimageloader.**{*;}

-keep class us.pinguo.androidsdk.*{*;}
-keep class us.pinguo.edit.sdk.core.effect.**{*;}
-keep class us.pinguo.edit.sdk.core.model.PGEftDispInfo{*;}
-keep class us.pinguo.edit.sdk.core.model.PGEftPkgDispInfo{*;}
-keep class us.pinguo.edit.sdk.core.PGEditCoreAPI{*;}
-keep class us.pinguo.edit.sdk.core.IPGEditCallback{*;}

-keep class us.pinguo.edit.sdk.base.PGEditResult{*;}
-keep class us.pinguo.edit.sdk.base.PGEditSDK{*;}

-keep class us.pinguo.edit.sdk.base.controller.PGEditController{*;}
-keep class us.pinguo.edit.sdk.base.utils.ApiHelper{*;}
-keep class us.pinguo.edit.sdk.base.view.IPGEditView{*;}
-keep class us.pinguo.edit.sdk.base.PGEditConstants{*;}
-keep class us.pinguo.edit.sdk.base.bean.PGEditMenuBean$*{*;}

-keep class us.pinguo.edit.sdk.base.view.**{*;}
-keep class us.pinguo.edit.sdk.base.widget.**{*;}

-keep class us.pinguo.edit.sdk.base.PGEditTools{*;}
-keep class us.pinguo.edit.sdk.base.bean.**{*;}

-keep class us.pinguo.common.log.*{*;}
-keep class us.pinguo.common.utils.*{*;}



文档官方网址

sdk官网

你可能感兴趣的:(sdk,笔记)