Android Compose 新闻App(八)抽屉布局、动态权限、拍照返回 前言 正文 一、完善新闻数据 ① ApiService ② NetworkRequest ③ HomeRepository...然后我们在AndroidManifest.xml中添加权限配置 android:name="android.permission.CAMERA"/> 下面我们可以想一下权限请求的入口在哪里...还记得之前在Android中的ActivityResult API吗?...>(null) } mCameraUri用于保存拍照返回的图片,imageUir 用于显示在页面上,然后我们可以写出这样的代码: //TakePicture 调用相机,拍照后将图片保存到开发者指定的...(), onResult = { if (it) imageUir.value = mCameraUri }) 在相机返回时,判断是否有拍照,有的话就对imageUir 进行赋值,赋值后状态会改变
; 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...> android="http://schemas.android.com/apk/res/android" android:orientation="horizontal...android:id="@+id/camera_preview" android:layout_width="fill_parent" android:
在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 的情况主要是由于拍照的时候横屏了..., Toast.LENGTH_LONG).show(); return false; } /** * 获取从本地图库返回来的时候的URI解析出来的文件路径
方式进行预览拍照。...由于Camera在SurfaceView中是通过SurfaceHolder 使得Surfaceview能够预览Camera返回的数据,因此我们需要实现SurfaceHolder 的回调,实现代码如下:...判断存在宽或高相等的Size // 辗转计算宽高最接近的值 for (Camera.Size size: sizes) { // 如果宽高相等,则直接返回..." android:layout_height="wrap_content" android:text="拍照" /> 至此,通过SurfaceView + Camera API 预览拍照功能已经实现。
应朋友需求做了款拍照测距的APP,可以测出你到目标物体的距离。...欢迎star、下载 github地址:点击打开链接 主要难点: 1.自定义相机 2.SurfaceView双缓冲问题 3.别的也没啥了 README.md DistanceMeasure An android...(for reference only) Android 拍照测距 (借用下smart distance的截图 , 如有不妥请告知) 使用方法: 输入目标物体的真实高度 动动手指用屏幕上的绿线圈住目标物体
最近在Android上做了拍照功能的开发。...业务场景是:点击界面(HTML5)上的拍照按钮会调用拍照的JS API,获取其返回照片文件的存储路径、扩展名以及照片文件的Base64字符串,然后在界面上显示图片。......"); } 2、如何将拍摄到的照片保存到存储中,而不只是生成一份缩略图数据返回。...private static final int ACTION_TAKE_PHOTO = 1; private Uri photoUri; /*** * 需要说明一下,以下操作使用照相机拍照,拍照后的图片会存放在相册中的...* 这里使用的这种方式有一个好处就是获取的图片是拍照后的原图 * 如果不实用ContentValues存放照片路径的话,拍照后获取的图片为缩略图不清晰 */ ContentValues values
" android:text="拍照" android:textColor="#000" /> <View android:layout_width..." android:text="取消" android:textColor="#000" /> 这是一个弹窗的布局文件,里面提供你选择拍照...: /** * 拍照 */ private void takePhoto() { if (!.../** * 返回到Activity * @param requestCode * @param resultCode * @param data */...super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { //拍照后返回
拍照 private static final int TAKE_PICTURE = 0; void takePhotoClick() { if (Build.VERSION.SDK_INT >...Manifest.permission.CAMERA}, REQUEST_CODE_ASK_PERMISSIONS); } else { startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE...grantResults[0] == PackageManager.PERMISSION_GRANTED) { startActivityForResult(new Intent("android.media.action.IMAGE_CAPTURE...Calendar.getInstance(Locale.CHINA)) + ".jpg"; Bundle bundle = data.getExtras(); //获取相机返回的数据...choose_photo_layout_click() { //调用相册 Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
从selectPhotoActivity中启动图册或者相机,再根据获取的uri进行裁剪,返回uri,再对这个uri执行一系列操纵。...拍照获取图片 private void takePhoto() { // 执行拍照前,应该先判断SD卡是否存在 String SDState = Environment.getExternalStorageState..., takePhoto)中,设置了拍完照照片的存放路径takePhoto,在此情况下,部分机型的onActivityResult()中不会返回数据,即data.getData()为空,因为可以根据存放路径即可获取拍照图片...super.onActivityResult(requestCode, resultCode, data); } 因为在本activity中可能启动三个新的activity,即拍照...需要注意,拍完照的图片需要经过裁剪,即,只有从相册选取和裁剪返回的数据可以setRuselt(),故需要添加一个if语句加以判别。
Android打开系统拍照&相册获取头像 现在许多应用都有上传头像的功能,再次奉上代开系统相册或打开系统相机拍照的实现,有的同学在测试小米手机上打开选择相册有奔溃,此代码已完美解决此问题… 楼主,做的头像需要经过裁剪之后和圆形处理...设置点击打开相机&打开系统图库 @Override public void onClick(View v) { // 打开系统拍照程...= null) { // 拍照 Bundle bundle = data.getExtras(); // 获取相机返回的数据,并转换为图片格式...uri情况就有点多了 //**:在4.4.2之前返回的uri是:content://media/external/images/media/3951或者file://....在4.4.2...返回的是content://com.android.providers.media.documents/document/image:3951或者 //总结:uri的组成,eg:
ImageView pictureImageView = null; private static final int TAKE_PHOTO_PERMISSION_REQUEST_CODE = 0; // 拍照的权限处理返回码...* 我们在这里对拍照、相册选择图片、裁剪图片的返回结果进行处理 * @param requestCode 返回码,用于确定是哪个 Activity 返回的数据 * @param...resultCode 返回结果,一般如果操作成功返回的是 RESULT_OK * @param data 返回对应 activity 返回的数据 */ @Override...对于拍照的结果,photoUri 代表的是拍照得到的照片的 Uri,而对于从相册中选择图片,其返回的 Intent 类型的数据中就是用户选取的图片的 Uri,因为我们通过 data.getData()...下面是上面例子的源码: Android 中拍照、相册选择、裁剪照片(兼容Android 7.0) 这里是 Github 地址,没积分的看这里 谢谢观看。。。
今天又要加打开相机拍照并且上传图片的功能。很多项目都会用到,所以一时兴起,写了个封装类,希望在其他项目中,能够快速引入相机拍照系统。...import android.net.Uri import android.os.Build import android.os.Environment import android.provider.MediaStore...(返回原始图) companion object { var imageFile: File?...= null //拍照后保存的照片 var imgUri: Uri?...compressImageComplete(imgBitmap: Bitmap, file: File) } /** * 压缩图片(质量压缩) * 压缩BitMap至指定大小以内,并且返回
演示视频一,准备 android apk的安装,本文用的自带模版是Bottom Navigation Activity,android api 30二,添加必要的权限在AndroidManifest.xml...文件中添加相机权限,与标签同级 android:name="android.permission.CAMERA" /> android:name="android.hardware.camera" /> android:name="android.hardware.camera.autofocus...", Toast.LENGTH_SHORT).show(); } } }六,实现拍照功能// 启动相机并拍照 private void takePhoto...null) { startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO); } }七,处理拍照结果
} 此时发现 代码执行到 if(data==null)就结束了,问题为为什么拍摄相机的回调图片数据data为null 查询发现: 照相机有自己默认的存储路径,拍摄的照片将返回一个缩略图
最近我在群里看到有好几个人在交流说现在网上的一些Android调用系统相册和拍照的demo都有bug,有问题,没有一个完整的。...Intent.ACTION_GET_CONTENT); intent.setType("image/*"); } else { intent = new Intent( Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI
一、背景介绍 拍照是手机的基本功能,优化拍照性能,主要是优化点击拍照到生成照片的这一段时间,看看可以在什么地方减少耗时 下面将打开camera到拍照完成这段时间拆解一下 这段过程主要分为: capture...session配置阶段:这是预览之前的阶段 预览流程:这段时间,camera不断出帧,显示在TextureView上 拍照流程:点击拍照到最终生效图片的流程 Note:将预览流程与拍照流程合成一个大的流程...因为预览的帧数据太小,拍照的帧数据很大,所以不能直接复用。那如果能直接复用呢?...就是预览的帧数据可以直接被拍照来使用 这也是我们本文讨论的重点,直接复用预览的帧数据 直接复用预览的帧数据,那么首先需要保证的是预览帧的大小必须和实际拍照的帧大小是相同的,不然获取的预览帧数据也是没用的...} } }; 只要是处于预览状态,底层的sensor会一直出帧数据,这个onImageAvailable(ImageReader reader)会一直回调 2.3 定义实时的Image返回值
Android 更换头像 前言 正文 一、新建项目 二、配置项目 三、布局、样式改动 四、权限请求 五、底部弹窗显示 六、工具类 七、打开相机、相册 八、页面返回显示图片 九、本地缓存 十、后台获取 十一..." android:text="拍照" android:textColor="#000" /> <View android:layout_width..." android:text="取消" android:textColor="#000" /> 这是一个弹窗的布局文件,里面提供你选择拍照...: /** * 拍照 */ private void takePhoto() { if (!...super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { //拍照后返回
但是,bindService方法总是返回false。我查了其他类似的帖子,但没有一个解决了我的问题。任何评论非常感谢。...Android bindservice方法返回false 这里是BaseExpendableListAdapter类中,我调用该方法的活动: class myExpandableListAdapter
先发制人,后发制于人。——《汉书》 我们可以重写Activity中的onBackPressed方法去实现 例如 ...就是这样
返回堆栈 概念 II . 返回堆栈 运行机制 III . 任务 I ....返回堆栈 概念 ---- 返回堆栈概念 : ① 任务 : Android 中的任务就是 Android 应用 与 用户进行交互的 Activity 界面集合 ; ② 返回堆栈 : 将 Activity...界面依次放入 一个 堆栈 数据结构中 , 这个堆栈就是 返回堆栈 ; ③ 作用 : 返回堆栈的作用是 管理 Android 不同层级界面的打开关闭顺序 ; 注意 : 任务是多个 Activity ,..., 系统就会创建一个新的 返回堆栈 , 这个应用的 Main Activity 就会作为该 返回堆栈的 根 Activity , 放在堆栈的最底部 ; ② 入栈 和 出栈 : 返回堆栈 只有入栈 和..., 之前的 Activity 1 仍然会滞留在 返回堆栈 中 , 状态处于 “已停止” 状态 ; 下图是 连续 启动 3 个 Activity 后的返回堆栈 示例图 : ④ 出栈原理 : 用户按下返回键时