android拍照demo
‘壹’ 做了一个Android的demo实现头像裁剪上传,但是拍照完成后出现如下图问题,图库也一样大神们帮忙看看
实现思维路径:
以进入相机拍照的思维路线为例子:
1.进入app
2.判断之前是否保存头像,如果有就显示历史图像 (下面代码中在getOldAvatar();方法中执行这个逻辑)
3.点击更换图像的Button或者布局,启动对话框(下面代码中在dialogueBox();方法执行这个逻辑)
4.系统版本判断授权方式(静态还是动态授权),判断之前是否已经授权 (setPermissions(Permissions_CAMERA_KEY);这个方法执行授权逻辑)
5.如果是首次授权,就执行首次授权完成后马上运行的回调方法 onRequestPermissionsResult
5.判断完成不管是否是首次授权还是之前就是授权过了都要执行enterCamera();方法启动相机并且发送携带数据的请求
6.启动相机完成后,并且拍照完成退出相机,都要运行Intent返回数据请求回调方法onActivityResult。将传入的数据传入到cropPhoto(data.getData());方法里去执行图片剪裁。
7.在cropPhoto方法里将携带数据跳转到裁剪界面中裁剪图片,裁剪完成后又要回到onActivityResult回调方法里,执行裁剪完的数据回调工作。
8.在onActivityResult回调方法里,裁剪完的图片将运行setPicToView 方法保存图片。保存的图片将在下次启动activity时作为历史头像调用。
package com.example.lenovo.mydemoapp;
import android.app.Activity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Build;
import android.os.Environment;
import android.os.StrictMode;
import android.provider.MediaStore;
import android.support.annotation.NonNull;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
‘贰’ Android app制作,有一个demo,是分享照片到微信的,可以分享照片也可以拍照分享,可是一拍照就崩溃
飞机不怕遭雷劈
最近西雅图两架飞机被闪电击中,但飞机和乘客都安然无恙,有人说飞机都有防雷装置,所以不怕遭雷劈,果真如此?
真假求真相
‘叁’ android 怎么从相机上传照片demo
DEMO的时候. 在控制台输入: record空格X(X代表你DEMO的名称)回车.录像开始. stop停止录像. playdemo空格X(播放你所有的DEMO.X代表DEMO的名称) 停止后在你CS/反恐精英/目录下搜索DEMO的名子.
‘肆’ android 怎么实现同时支持拍照和录像的功能啊
可以拿到每帧的数据自己做编解码和存储,录像还好,拍照的话只能存储preview的一帧画面,而不能用系统拍照函数得到高分辨率图片数据。想在录像的时候同时可以拍高质量图片做不到,因为系统拍照的功能会停止preview,而停止preview后就不能录像了。
‘伍’ 【Android】使用CameraX实现拍照和录制视频
AndroidX是Jetpack包下的组件,谷歌帮你考虑好了很多细节,用就完事了。这些细节想自己设置的话也可以,不设置使用默认值照样很舒服。
在 Manifest 的 manifest 节点下中加入以下内容:
在 manifest 标签里面加入一条属性:
画黄线不理,如果不加这句,在Android Q上会无法往相册存储文件。
这里参考官方Demo的写法,最底部图层是一个 PreviewView 用来预览,上层放两个按钮,一个用来拍照,一个用来录像。
在 onCreate 里开始主要逻辑。如果已有权限,开启相机预览。
在请求权限返回的时候,判断是否已有权限,如果有了就可以开启预览了
开启预览,把预览内容放进 PreviewView 里。
监听,写在Activity外面
再在Activity里面写一个内部类
界面销毁时关闭线程
Github CameraX-Demo
Google CameraX 开发文档
掘金-JetPack之使用CameraX完成拍照和拍视频