Android 7.0 实现拍照和相册选取图片功能
Android 7.0 中的拍照和相册选取图片功能是 Android 开发中一个非常重要的功能。随着 Android 7.0 的发布,Google 为我们带来了许多新的功能和变化,其中之一就是动态权限机制。动态权限机制改变了我们之前的开发方式,需要我们在使用拍照和相册选取图片功能时申请动态权限。
在 Android 7.0 中,我们可以通过以下步骤来实现拍照和相册选取图片功能:
1. 在 res 目录下,新建 xml 文件夹,并在 xml 文件夹中新建一个 filepaths.xml 文件。filepaths.xml 文件用于定义文件路径。
2. 在 AndroidManifest.xml 文件中添加权限,我们需要添加WRITE_EXTERNAL_STORAGE 权限,以便我们可以读写外部存储器。
3. 添加 provider,provider 是 Android 中的一个组件,用于提供文件共享功能。在这里,我们使用 FileProvider 来提供文件共享功能。
4. 在MainActivity 中,我们需要动态申请权限,并且调用系统相机和相册。在这里,我们使用 Button 来触发拍照和相册选取图片功能。
public class MainActivity extends Activity{
private static int REQUEST_CAMERA =1;
private static int IMAGE_REQUEST_CODE =2;
private File file;
private Button button,take_button;
private ImageView imageView;
private String paths;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
button = (Button)findViewById(R.id.button);
take_button = (Button)findViewById(R.id.take_button);
imageView = (ImageView)findViewById(R.id.ivView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//拍照功能
}
});
take_button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//相册选取图片功能
}
});
}
}
在上面的代码中,我们使用 Button 的点击事件来触发拍照和相册选取图片功能。在 onClick 方法中,我们可以使用 Intent 来调用系统相机和相册。
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, REQUEST_CAMERA);
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, IMAGE_REQUEST_CODE);
在 onActivityResult 方法中,我们可以获取到拍照和选取的图片,并将其显示在 ImageView 中。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CAMERA) {
//拍照回调
} else if (requestCode == IMAGE_REQUEST_CODE) {
//相册选取图片回调
}
}
通过以上步骤,我们就可以实现 Android 7.0 中的拍照和相册选取图片功能。这个功能在我们开发过程中非常重要,能够帮助我们快速实现拍照和选取图片的功能。