Android Annotations配置与使用
生活随笔
收集整理的這篇文章主要介紹了
Android Annotations配置与使用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android Annotations官網地址:http://androidannotations.org
Android Studio配置
Project級build.gradle
buildscript {repositories {jcenter()}dependencies {classpath 'com.android.tools.build:gradle:2.1.2'classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'} }allprojects {repositories {jcenter()} }task clean(type: Delete) {delete rootProject.buildDir }Module級build.gradle
apply plugin: 'com.android.application' apply plugin:'android-apt' def AAVersion='4.0.0'android {compileSdkVersion 23buildToolsVersion "23.0.3"defaultConfig {applicationId "com.android.fileuploaddemo"minSdkVersion 8targetSdkVersion 23versionCode 1versionName "1.0"}buildTypes {release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'}} }dependencies {compile fileTree(dir: 'libs', include: ['*.jar'])testCompile 'junit:junit:4.12'compile 'com.android.support:appcompat-v7:23.4.0'apt "org.androidannotations:androidannotations:$AAVersion"compile "org.androidannotations:androidannotations-api:$AAVersion"}apt {arguments {androidManifestFile variant.outputs[0]?.processResources?.manifestFileresourcePackageName "com.android.fileuploaddemo"} }簡單Demo
package com.android.fileuploaddemo;import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.os.Environment; import android.provider.MediaStore; import android.support.annotation.UiThread; import android.util.Log; import android.widget.Toast;import org.androidannotations.annotations.Click; import org.androidannotations.annotations.EActivity; import org.androidannotations.annotations.Fullscreen; import org.androidannotations.annotations.OnActivityResult;import java.io.File; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale;@Fullscreen @EActivity(R.layout.activity_main) public class MainActivity extends Activity {private static final int CAPTURE_IMAGE_REQUEST = 100;private static final int RECORD_VIDEO_REQUEST = 200;private static final int MEDIA_TYPE_IMAGE = 1;private static final int MEDIA_TYPE_VIDEO = 2;private Uri fileUri;/*** 拍照*/@Click(R.id.capture_image_btn)void captureImage(){Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);fileUri = getOutputFileUri(MEDIA_TYPE_IMAGE);intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);startActivityForResult(intent,CAPTURE_IMAGE_REQUEST);}/*** 錄像*/@Click(R.id.record_video_btn)void recordVideo(){Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);fileUri = getOutputFileUri(MEDIA_TYPE_VIDEO);intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY,1);intent.putExtra(MediaStore.EXTRA_OUTPUT,fileUri);startActivityForResult(intent,RECORD_VIDEO_REQUEST);}/**** 當Activity銷毀的時候,保存數據*/@Overrideprotected void onSaveInstanceState(Bundle outState) {super.onSaveInstanceState(outState);outState.putParcelable("fileUri",fileUri);}/**** 當Activity重建的時候,恢復數據*/@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {super.onRestoreInstanceState(savedInstanceState);fileUri = savedInstanceState.getParcelable("fileUrl");}/**** 拍照請求返回結果*/@OnActivityResult(CAPTURE_IMAGE_REQUEST)void onCaptureImageResult(int resultCode){if(resultCode == RESULT_OK){Intent intent = new Intent(MainActivity.this,UploadActivity_.class);intent.putExtra("filePath",fileUri.getPath());intent.putExtra("isImage",true);startActivity(intent);}else if(resultCode == RESULT_CANCELED){Toast.makeText(getApplicationContext(),"用戶取消拍照",Toast.LENGTH_SHORT).show();}else{Toast.makeText(getApplicationContext(),"拍照失敗",Toast.LENGTH_SHORT).show();}}/**** 錄像請求返回結果*/@OnActivityResult(RECORD_VIDEO_REQUEST)void onRecordVideoResult(int resultCode){if(resultCode == RESULT_OK){Intent intent = new Intent(MainActivity.this,UploadActivity_.class);intent.putExtra("filePath",fileUri.getPath());intent.putExtra("isImage",false);startActivity(intent);}else if(resultCode == RESULT_CANCELED){Toast.makeText(getApplicationContext(),"用戶取消錄像",Toast.LENGTH_SHORT).show();}else{Toast.makeText(getApplicationContext(),"錄像失敗",Toast.LENGTH_SHORT).show();}}@UiThreadprivate Uri getOutputFileUri(int mediaType){File fileDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),"dir");if(!fileDir.exists()){if(!fileDir.mkdirs()){Log.d("Message","Create Directory failed");return null;}}String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault()).format(new Date());File filePath;if(mediaType == MEDIA_TYPE_IMAGE){filePath = new File(fileDir.getPath()+File.separator+"IMG_"+timeStamp+".jpg");}else if(mediaType == MEDIA_TYPE_VIDEO){filePath = new File(fileDir.getPath()+File.separator+"VID_"+timeStamp+".mp4");}else {return null;}return Uri.fromFile(filePath);}}總結
以上是生活随笔為你收集整理的Android Annotations配置与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android短信验证
- 下一篇: Android Screen Monit