官方推荐的做法是使用 FileProvider 来实现,**下面来看一下怎么实现这个 APP 中常见的功能: 一般来说,我们通过拍照来获取图片有以下步骤: 调用系统相机拍照 --> 调用系统裁剪程序裁剪裁照片并输出到指定目录...--> 读取裁剪后的图片 获取从相册选择的图片: 调用系统图库 --> 得到选择的图片的 Uri 并裁剪图片然后输出到指定目录 --> 读取裁剪后的图片 这里可能有些小伙伴会问了,为什么要调用系统的裁剪程序裁剪照片呢...因为现在的手机大多数像素比较高,拍出来的照片比较大,如果直接读取拍照后的照片,那么可能会发生栈溢出(就是应用内存不够用)。因此要将图片裁剪之后再读取。..." android:layout_height="wrap_content" android:text="拍照获取图片"/> <Button android...下面是上面例子的源码: Android 中拍照、相册选择、裁剪照片(兼容Android 7.0) 这里是 Github 地址,没积分的看这里 谢谢观看。。。
/btn_style_alert_dialog_button" android:text="拍照" android:textStyle="bold" /> 去裁剪 PhotoUtilChange.onPhotoFromCamera(MainActivity.this, CODE_ZOOM_PHOTOT...tempFile.getAbsolutePath(), 1, 1); break; case CODE_PICK_PHOTO://从相册选择 //2.处理从相册选择的结果-->去裁剪...tempFile.getAbsolutePath(), data, 50, 50); break; case CODE_ZOOM_PHOTOT://裁剪...//3.裁剪完成 Bitmap zoomBitMap = PhotoUtilChange.getZoomBitMap(data, MainActivity.this
Android 拍照并对照片进行裁剪和压缩实例详解 本文主要介绍 Android 调用摄像头拍照并对照片进行裁剪和压缩,文中给出了主要步骤和关键代码。...调用摄像头拍照,对拍摄照片进行裁剪,代码如下。.../** * 调用摄像头拍照,对拍摄照片进行裁剪 */ private void showCameraAction() { // 跳转到系统照相机 Intent cameraIntent = new.../** * 对拍摄照片进行裁剪 */ private void crop() { Intent intent = new Intent("com.android.camera.action.CROP...intent.setDataAndType(Uri.fromFile(tempFile), "image/*"); intent.putExtra("crop", "true"); // 这里必须设置为true拍照之后才会进行裁剪操作
是这种,客户须要做一个图片上传的功能,这个图片须要裁剪。一般而言,这东西用系统自带的裁剪就搞定了。但是客户不,他要能够自由裁剪,就是长宽比不固定,想裁成什么比例就裁成什么比例,我一听,蛋都碎了。 ...图片裁剪的功能系统自带了,和我的需求仅仅有一点不一样,就是它是固定宽高比的,设定了宽高比就不能再改变,而我须要自由宽高比。好吧,既然仅仅有这一点不一样,那给他改改即可了。 ...但是找了一圈,仅仅有一个哥哥自己写了一个自己定义裁剪的功能。跑了一下,基本功能能够实现,但是太Ugly了,并且不太稳定,有一些适配没有做好。想想还是自己改源代码好了,嗯,就这样。 ...下载gallery的源代码,抽取裁剪功能的代码,如图 这基本就好了,然后CropImage.java里面有叉叉,自己改下就好了。...然后怎么让他自由裁剪呢,看下mAspectX变量的使用,源代码里面用mAspectX和mAspectY来做宽高比计算的,我们就把他计算宽高比的地方凝视掉就好了。
Android 图片裁剪 前言 正文 一、创建并配置项目 二、权限申请 三、获取图片Uri 四、图片裁剪 尾声 运行效果图 ?...前言 图片裁剪是对图片进行区域选定,然后裁剪选定的区域,形成一个图片,然后再对这个图片进行压缩,最终返回结果图片。...正文 从上面的描述来看貌似是挺简单的是吧,不过实际操作起来就没有那么简单了,下面先来看看简单的实现方式,就是Android自带的裁剪。...四、图片裁剪 既然是调用Android系统的图片裁剪,那么自然也和打开系统相册差不多,依然是先创建一个请求码: /** * 图片剪裁请求码 */ public static...final int PICTURE_CROPPING_CODE = 200; 然后写一个裁剪的方法。
; 8 import android.util.Log; 9 import android.view.View; 10 import android.widget.Button; 11 import...android.widget.FrameLayout; 12 import android.app.Activity; 13 import android.content.Context; 14...; import android.hardware.Camera; import android.util.Log; import android.view.SurfaceHolder; import...> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal...android:id="@+id/camera_preview" android:layout_width="fill_parent" android:
分享给大家供大家参考,具体如下: 主界面类:拍照及选择相册图片 import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap...; import android.widget.Button; import android.widget.ImageView; /** * Android中图片操作(拍照,相册图片选择及图片裁剪) *...ImageUtils.saveBitmapToSdCard(bm); //对图片剪 startImageCrop(fileUri); break; case UPLOAD_PIC_REQUEST: //把裁剪后的图片展示出来...X方向宽 intent.putExtra("outputY", 100);//裁剪区的Y方向宽 intent.putExtra("scale", true);//是否保留比例 intent.putExtra..." android:text="拍照上传" / <Button android:id="@+id/local_pics" android:layout_width="match_parent" android
最近做项目中涉及到了图片相关功能 ,在使用安卓6.0手机及7.1手机拍照时,遇到了因权限及文件管理导致程序崩溃等问题。 刚好把功能修改完,把代码简单地贴一下,方便以后使用。...—-主界面 代码 —— public class MainActivity extends AppCompatActivity { //拍照按钮 private Button take_photo; /.../显示裁剪后的图片 private ImageView photo_iv; private static final int PERMISSIONS_FOR_TAKE_PHOTO = 10; //图片文件路径...= null) { photo_iv.setImageBitmap(bitmap); } } } } } /** * 拍照获取图片 */ private void takePictures() { //..." android:text="拍照" android:textSize="18sp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf
大家好,这是一个简单的拍照功能,很简单的界面,一个显示图像区域SurfaceView一个“拍照”按钮。直接上代码!...android:id="@+id/camera_preview" android:layout_width="800dip" android:layout_height="600dip" android...android:name="android.permission.CAMERA" / <uses-feature android:name="android.hardware.camera" /...<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" / 源码下载:Android...实现拍照功能 以上就是本文的全部内容,希望对大家的学习有所帮助。
在手机上面实现,设置一段时间(以秒计时)之后,自动拍照,适用于摄影师建立一个场景,之后设置时间,再进入场景。...<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/frameLayout...android:layout_height="fill_parent" android:orientation="vertical" <Button android...--下面的可不需要-- <uses-feature android:name="android.hardware.camera" / <uses-feature android:name="android.hardware.camera.autofocus...; import android.text.TextWatcher; import android.util.Log; import android.view.Menu; import android.view.SurfaceHolder
最近得到了一个需求,在后台拍照并保存 public void onTakePhotoClicked() { final SurfaceView preview = new SurfaceView(...this); SurfaceHolder holder = preview.getHolder(); // deprecated setting, but required on Android...params); } @Override public void onPictureTaken(byte[] bytes, Camera camera) { Log.e("zgj", "拍照结束...IOException e) { Log.d("zgj", "Error accessing file: " + e.getMessage()); } } 总结 以上所述是小编给大家介绍的Android...无预览拍照功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
拍照可以调用系统的相机进行拍照,拍完保存到相应的SD卡目录。最近要用到拍照这个功能,首先试了下调用相机拍照,保存到相应目录,然后用imageview显示的时候感觉,很模糊。可能是图片被压缩的太狠了。...所以自己使用Camera写了一个拍照的功能,拍出来的还挺清晰的,不过文件有点大一张图片差不多1.7M。如果想拍高清图可以使用下面的代码。 代码很简单,我就不做过多解释了。...; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.content.Intent...; import android.hardware.Camera; import android.text.format.DateFormat; import android.util.Log; import...android.view.KeyEvent; import android.view.Menu; import android.view.SurfaceHolder; import android.view.SurfaceView
本文实例为大家分享了Android实现静默拍照功能的具体代码,供大家参考,具体内容如下 1.申请权限(6.0以后要动态申请) <uses-permission android:name="android.permission.CAMERA..." / <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/ <uses-permission android...="500dp" </FrameLayout </LinearLayout 4.主类实现静默拍照: public class CameraActivity extends BaseActivity...Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); // 设置1秒后自动拍照...//设置对焦模式,自动对焦 parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); //对焦成功后,自动拍照
在android开发中, 在一些编辑个人信息的时候,经常会有头像这么一个东西,就两个方面,调用系统相机拍照,调用系统图库获取图片.但是往往会遇到各种问题: 1.oom 2.图片方向不对 3.activity...android.database.Cursor; import android.net.Uri; import android.provider.MediaStore; import android.widget.Toast...; //在onActivityResult方法中根据requestCode和resultCode来获取当前拍照的图片地址。...//注意:这里有个问题,在有些机型当中(如SamsungI939、note2等)遇见了当拍照并存储之后,intent当中得到的data为空: /** * data = null 的情况主要是由于拍照的时候横屏了...; import android.graphics.RectF; import android.media.ExifInterface; import android.net.Uri; import android.util.Log
方式进行预览拍照。...= null) { mCamera.stopPreview(); } } /** * 拍照 */ public static...R.id.btn_switch: switchCamera(); break; } } /** * 拍照..." android:layout_height="wrap_content" android:text="拍照" /> 至此,通过SurfaceView + Camera API 预览拍照功能已经实现。
Android 图片裁剪 前言 正文 一、创建并配置项目 二、权限申请 三、获取图片Uri 四、图片裁剪 五、源码 尾声 运行效果图 前言 图片裁剪是对图片进行区域选定,然后裁剪选定的区域,形成一个图片...正文 从上面的描述来看貌似是挺简单的是吧,不过实际操作起来就没有那么简单了,下面先来看看简单的实现方式,就是Android自带的裁剪。...> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com...四、图片裁剪 既然是调用Android系统的图片裁剪,那么自然也和打开系统相册差不多,依然是先创建一个请求码: /** * 图片剪裁请求码 */ public static...final int PICTURE_CROPPING_CODE = 200; 然后写一个裁剪的方法。
今天做的就是关于实现图片的区域裁剪功能。由于项目功能的需要笔者需要实现PDF文档的阅读,并且就某个页面实现“图片”裁剪(一个页面理解为一张图片)。笔者对着方面是一点儿也不熟悉,因此就得上网查资料了。...之后笔者找到了Android可以通过调用系统相册、拍照实现图片的裁剪、缩放功能。 这一过程就像是在某个应用中上传头像,并对头像进行调整。现做一个记录与分享。 首先我们还是来看看实际的效果图吧!...; import android.widget.ImageButton; import android.widget.ImageView; /** * 调用系统相册或者拍照来实现图片的裁剪、缩放...switch (requestCode) { // 如果是直接从相册获取 case 1: startPhotoZoom(data.getData()); break; // 如果是调用相机拍照时...一个简单的图片裁剪功能就完成了,完整的源码:Android实现图片裁剪功能 以上就是本文的全部内容,希望对大家的学习有所帮助。
本文实例为大家分享了Android调用系统相机拍照的具体代码,供大家参考,具体内容如下 /** * 调用系统相机 */ private void takePhoto() { Uri uri = null...getSDPath() { File sdDir = null; boolean sdCardExist = Environment.getExternalStorageState() .equals(android.os.Environment.MEDIA_MOUNTED
本文实例为大家分享了Android实现无预览拍照功能的具体代码,供大家参考,具体内容如下 实现思路: 把预览的SurfaceView的宽高设置为肉眼看不出的值,例如0.1dp,其他的就是自定义相机的标准步骤了...android:orientation="vertical" <Button android:id="@+id/btn_test" android:layout_width...="wrap_content" android:layout_height="wrap_content" android:text="测试" android:layout_gravity...注意:宽高不能设置为0,否则不能拍照。...CameraKitVideo cameraKitVideo) { } }); } @OnClick(R.id.btn_test) public void onViewClicked() { //拍照
领取专属 10元无门槛券
手把手带您无忧上云