android拍照截图组件,AutoCamera - 极简的Android拍照/相册/截图调用方法

AutoCamera是什么?

AutoCamera可以帮你用几行代码,就完成拍照/相册/截图的API调用。

怎么用呢?

前提

这个库不负责申请权限,需要有的权限有:

使用方法

在Activity上使用此注解,指定存储位置,以下两种方式可以取其一

/**

@NeedUseCamera是必须的,savePath可以不传,但是一定要有@PathGenerator才行,默认needCrop为fales,即关闭截图

*/

@NeedUseCamera(savePath = "test.jpg")

public class MainActivity extends AppCompatActivity {

/**

如果指定了savePath,这个方法可以不创建,如果创建了这个方法,会覆盖savePath

*/

@PathGenerator

String generatePath(){

return "test.jpg";

}

}

声明返回方法

// 参数的类型必须是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应用插件

apply plugin: 'com.neenbedankt.android-apt'

为什么要这么做

从开始做Android开发,用相机的API经过了三个阶段:

在每个需要调用摄像头的地方,新建Intent,然后startActivityForResult,然后在onActivityResult中进行处理。

封装一个工具类,将新建Intent和startActivityForResult封装,但是还是需要在onActivityResult中,获取返回结果,并处理。

使用AutoCamera,将能封装的,全部封装。

其中,需要的参数,例如保存地址,截图后的比例,截图后图像的大小,都可以在注解中声明。

怎么做的

大家应该都是用过Dagger/ButterKnife,使用同样的思路,使用注解来生成代码,帮我们自动写出来要用的代码。

例如MainActivity,Build之后会生成一个MainActivityAutoCamera的类,这个类并不复杂,就是我们平时写的那些代码,大家一看便知道了。

Github

点击AutoCamera可以查看源码,欢迎大家fork,start,issue。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
组件的生命周期包括三个主要阶段:创建、更新和销毁。每个阶段都有一些特定的方法,用于在该阶段执行特定的操作。 1. 创建阶段 在组件的创建阶段,会依次执行以下方法- constructor:组件的构造函数,在组件被创建时被调用- getDerivedStateFromProps:该方法组件被创建或接收到新的 props 时被调用,用于更新组件的 state。 - render:该方法返回组件的虚拟 DOM 树。 - componentDidMount:该方法组件被挂载到页面上后被调用,可以用于执行一些副作用操作,如请求数据、添加事件监听等。 2. 更新阶段 当组件的 props 或 state 发生变化时,会触发组件的更新阶段,依次执行以下方法- getDerivedStateFromProps:同样会在更新阶段执行,用于更新组件的 state。 - shouldComponentUpdate:该方法用于判断组件是否需要更新,可以通过返回值控制组件是否更新,默认返回 true。 - render:同创建阶段。 - componentDidUpdate:该方法组件完成更新后被调用,可以用于执行一些副作用操作,如更新 DOM、请求数据等。 3. 销毁阶段 当组件被从页面上卸载时,会触发组件的销毁阶段,执行以下方法- componentWillUnmount:该方法组件被销毁前被调用,可以用于清除一些副作用操作,如移除事件监听、清除定时器等。 总的来说,组件的生命周期包括创建、更新和销毁三个阶段,每个阶段都有一些特定的方法,用于在该阶段执行特定的操作。理解组件的生命周期对于优化组件性能和提升用户体验非常重要。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值