Camera360編輯SDK 接入指南(Android)

NO IMAGE

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:

2、選擇Importing Existing Project,並點選Next:

3、在介面中選擇PG_Edit_SDK工程路徑,點選Next:

4、在視窗中點選Finish:

5、此時模組已完成匯入,接下來需要建立App工程與SDK工程之間的依賴,在App工程點選右鍵選擇Open Module Settings:

6、在視窗中左側列表選擇App工程模組,右側Tab選擇Dependency標籤欄,點選下方 號選擇Module Dependency:

7、在彈出視窗中選擇PG_Edit_SDK模組並點選OK:

8、這時在Dependencies視窗中應該能看見PG_Edit_SDK模組,點選OK完成工程匯入:

4.2 使用Eclipse

1、在App工程中,在Package Explore中右鍵->選擇Import

2、在彈出的Import視窗中選擇:Existing Android Code Into Workspace,點選Next

3、在右側點選Browse,選擇下載的SDK程式碼路徑,並點選確定,此時下方Projects列表會顯示PG_Edit_SDK工程,接下來點選Finish

4、此時在左側Package Explore中能看見剛匯入的PG_Edit_SDK工程,下面需要建立App與SDK工程的依賴關係,在App工程點選右鍵選擇Properties:

5、在視窗左邊選擇列表中選擇Android,點選右側Add按鈕:

6、在視窗中選擇PG_Edit_SDK工程,點選OK:

7、此時在視窗Library列表中能看見PG_Edit_SDK工程,點選OK,完成工程匯入:

8、將assets目錄中的內容拷貝到您的App工程的assets目錄下

5. AndroidManifest.xml配置

5.1 新增API Key

在<application>標籤內新增meta-data入口:

<meta-data

android:name=”EDIT_SDK_KEY”

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

將android:value中的內容替換為您的API Key

接下來在<application>標籤內新增元件meta-data入口:

<meta-data

android:name=”BD_APP_ID”

android:value=”ea8d04692735bc1f”/>

<meta-data

android:name=”BD_APP_SECRET”

android:value=”vCGG9QZ94tcGxTjangCc_b_VuXwmfGd2″/>

5.2 新增許可權

Camera360編輯SDK需要新增部分系統許可權,請您在<manifest>標籤內新增下列入口:

<uses-permission

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

<uses-permission

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

<uses-permission

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

<uses-permission

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

<uses-permission

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

<uses-permission

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

<uses-permission

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

5.3 新增元件

在<application>標籤內新增元件入口:

<activity

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

android:screenOrientation=”portrait”

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

<service

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

android:process=”:bdupload”>

</service>

<receiver android:name=”us.pinguo.bigdata.BDAlarmReceiver”>

<intent-filter>

<action android:name=”bd_alarm”/>

</intent-filter>

</receiver>

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 <methods>;

}

-keepclasseswithmembers class * {

public <init>(android.content.Context, android.util.AttributeSet);

}

-keepclasseswithmembers class * {

public <init>(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官網