AutoCamera是什么?
AutoCamera可以幫你用幾行代碼梯嗽,就完成拍照/相冊/截圖的API調(diào)用询吴。
怎么用呢掠河?
前提
這個庫不負(fù)責(zé)申請權(quán)限,需要有的權(quán)限有:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
使用方法
- 在Activity上使用此注解猛计,指定存儲位置唠摹,以下兩種方式可以取其一
/**
@NeedUseCamera是必須的,savePath可以不傳奉瘤,但是一定要有@PathGenerator才行勾拉,默認(rèn)needCrop為fales,即關(guān)閉截圖
*/
@NeedUseCamera(savePath = "test.jpg")
public class MainActivity extends AppCompatActivity {
/**
如果指定了savePath盗温,這個方法可以不創(chuàng)建藕赞,如果創(chuàng)建了這個方法,會覆蓋savePath
*/
@PathGenerator
String generatePath(){
return "test.jpg";
}
}
- 聲明返回方法
// 參數(shù)的類型必須是Uri
@OnImageReturn
void onImageReturn(Uri uri){
Toast.makeText(this,uri.toString(),Toast.LENGTH_LONG).show();
}
- Build 了之后卖局,在onActivityResult中添加
MainActivityAutoCamera.onActivityResult(this,requestCode,resultCode,data);
- 使用
// 開啟相冊
MainActivityAutoCamera.openAlbum(MainActivity.this);
// 開啟相機
MainActivityAutoCamera.openCamera(MainActivity.this);
配置
- 根項目下的build.gradle添加插件
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
- app項目下的build.gradle添加依賴
compile 'org.jason:autocamera-library:0.0.1'
apt 'org.jason:autocamera-processor:0.0.1'
- app項目下的build.gradle應(yīng)用插件
apply plugin: 'com.neenbedankt.android-apt'
為什么要這么做
從開始做Android開發(fā)斧蜕,用相機的API經(jīng)過了三個階段:
- 在每個需要調(diào)用攝像頭的地方,新建
Intent
砚偶,然后startActivityForResult
批销,然后在onActivityResult
中進行處理。
- 封裝一個工具類染坯,將新建
Intent
和startActivityForResult
封裝均芽,但是還是需要在onActivityResult
中,獲取返回結(jié)果单鹿,并處理掀宋。 - 使用
AutoCamera
,將能封裝的仲锄,全部封裝劲妙。
其中,需要的參數(shù)昼窗,例如保存地址是趴,截圖后的比例,截圖后圖像的大小澄惊,都可以在注解中聲明唆途。
怎么做的
大家應(yīng)該都是用過Dagger/ButterKnife,使用同樣的思路掸驱,使用注解來生成代碼肛搬,幫我們自動寫出來要用的代碼。
例如MainActivity
毕贼,Build
之后會生成一個MainActivityAutoCamera
的類温赔,這個類并不復(fù)雜,就是我們平時寫的那些代碼鬼癣,大家一看便知道了陶贼。
Github
點擊AutoCamera可以查看源碼啤贩,歡迎大家fork,start,issue。