欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android Annotations配置与使用

发布时间:2025/3/21 Android 57 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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配置与使用的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。