Android 多媒体文件 *** 作(图片)

Android 多媒体文件 *** 作(图片),第1张

概述Android多媒体文件 *** 作Overview今天我们来看看如何 *** 作Android的相册和相机,并且我们需要看看如何才可以将我们的 *** 作的图片1显示出来,废话不多说开始吧。相机篇(最朴素的拍照方法)我们都知道Android调用摄像头是属于我们的危险权限,所以我们需要在运行时申请权限。如何在运 AndroID 多媒体文件 *** 作OvervIEw

今天我们来看看如何 *** 作AndroID的 相册和相机,并且我们需要看看如何才可以将我们的 *** 作的图片1显示出来,废话不多说开始吧。

相机篇(最朴素的拍照方法)

我们都知道AndroID 调用摄像头是属于我们的危险权限,所以我们需要在运行时申请权限。

如何在运行时申请我们的相机权限。

首先:我们需要添加我们的申请编码,这个非常的重要,每个代码之间都是不可以重复的。他是唯一性的!

//PERMISSION CODEfinal private static int OPEN_CAMERA_PERMISSION = 1;final private static int OPEN_ALBUM_PERMISSION = 2;//INTENT CODEfinal private static int GET_CAMERA_RESulT = 1;final private static int GET_ALBUM_RESulT = 2;

可以看到这里我申请了两组,分别用于权限申请代码和数据返回代码。

然后我们来看看如何 *** 作我们的权限,作为一个危险权限。

第一步我们需要在用户清单中添加我们的权限:

<!--FOR CAMERA--><uses-permission androID:name="androID.permission.CAMERA" /><!--FOR ALBUM--><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" />

这里就是两个代码,分别是 相机和相册的权限,但是他是危险权限,所以只在清单中申请肯定是不够的。

/*this is check camera permission */boolean checkPermissions(int permissionID) {    //CANERA    if (permissionID == OPEN_CAMERA_PERMISSION) {        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {            //this is request CAMERA PERMISSION            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CAMERA}, OPEN_CAMERA_PERMISSION);            return false;        } else            return true;    }        //ALBUM    if (permissionID == OPEN_ALBUM_PERMISSION) {        if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {            ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, OPEN_ALBUM_PERMISSION);            return false;        } else            return true;    }    return false;}

这里申请了两个危险权限,一个是相机权限,一个是相册权限。如果有权限就会返回TRUE如果没有就是返回FALSE然后会自动的向用户申请权限。

如何查看权限申请结果

但是只向用户申请权限是不够的,我们还需要去查看我们的申请结果,看看代码:

@OverrIDe//this is requestPermissionsResultpublic voID onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults)     super.onRequestPermissionsResult(requestCode, permissions, grantResults);    switch (requestCode) {        case 1:            //this is check request result. if true open Camera            if (grantResults.length > 0 && permissions[0].equals(PackageManager.PERMISSION_GRANTED))                openCamera();            break;        case 2:            if (grantResults.length > 0 && permissions[0].equals(PackageManager.PERMISSION_GRANTED))                openAlbum();            break;    }}

这个就是我们用来查看用户是否同意了指定权限的代码了。

如果用户同意了,我么需要打开我们的相册。

如何才可以打开我们的相册?
/*open Camera */voID openCamera() {    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);    startActivityForResult(intent, GET_CAMERA_RESulT);}

这样我们就可以打开我们的相机了。

但是只打开了,没去获取时得不到任何图片的。

如何实现获取返回的图片数据

你需要一个onActivityResult的方法来获取了

@OverrIDe//this is onActivityResultprotected voID onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {    super.onActivityResult(requestCode, resultCode, data);    switch (requestCode) {            //CAMERA        case 1:            if (data != null)                //get data and get the data and create Bitmap to binding ImageVIEw                ((ImageVIEw) this.findVIEwByID(R.ID.ImageVIEw)).setimageBitmap((Bitmap) Objects.requireNonNull(data.getExtras()).get("data"));            break;                        //ALBUM        case 2:            if (data != null) {                try {                    //get album selected image to binding the imageVIEw                    ((ImageVIEw) this.findVIEwByID(R.ID.ImageVIEw)).setimageBitmap(MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData()));                } catch (IOException e) {                    e.printstacktrace();                }            }            break;    }}

这个方法中我写了两个

一个是获取相机的返回数据,一个是获取相册的返回数据。

效果图(使用相机拍照)

这样我们的调用相机拍照就完成了。非常的简单。

这样我们最最基础的调用我们的相机拍照算是完成了。

相册篇关于权限

如何申请权限就不说了和上面的方法都是一样的,看一相机权限是啥就可以了。

<!--FOR ALBUM--><uses-permission androID:name="androID.permission.WRITE_EXTERNAL_STORAGE" />

这个就是我们的相机权限.再看看权限判断时候的代码吧:

if (permissionID == OPEN_ALBUM_PERMISSION) {    if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {        ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, OPEN_ALBUM_PERMISSION);        return false;    } else        return true;}

这个就是判断我们的相册权限是否申请的代码了。

如何打开相册
/*open Album */voID openAlbum() {    Intent intent = new Intent(Intent.ACTION_PICK);    intent.setType("image/*");    startActivityForResult(intent, GET_ALBUM_RESulT);}

这个就是打开我们的相册的代码了。这里有个setType的方法。这个方法是来指定我们的打开类型的代码。

如何获取我们的选择图片

还是在我们的onActivityResult下添加下面的代码:

if (data != null) {    try {        //get album selected image to binding the imageVIEw        ((ImageVIEw) this.findVIEwByID(R.ID.ImageVIEw)).setimageBitmap(MediaStore.Images.Media.getBitmap(getContentResolver(), data.getData()));    } catch (IOException e) {        e.printstacktrace();    }}

这样我们的图片选择就完成了

效果图

至此,这篇文章也结束了,告辞~

总结

以上是内存溢出为你收集整理的Android 多媒体文件 *** 作(图片)全部内容,希望文章能够帮你解决Android 多媒体文件 *** 作(图片)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062991.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存