做了一个Android的demo实现头像裁剪上传,但是拍照完成后出现如下图问题,图库也一样大神们帮忙看看

做了一个Android的demo实现头像裁剪上传,但是拍照完成后出现如下图问题,图库也一样大神们帮忙看看,第1张

实现思维路径

以进入相机拍照的思维路线为例子:

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

拍照功能可以用第三方框架Picasso或者LuckSiege的那个PictureSelector

,集成很方便,上传的话,和其他文件上传是一个道理,就http上传到你的服务器就可以了

方法一:

①下载fileupload 插件,将文件转换成流;

②再写出到指定的路径,将存储路径存储在数据库中。

方法二:

可以将头像文件做一次压缩处理,原图一个路径,压缩图一个路径。压缩图路径展示的是小图,原图路径展示的是原图。


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

原文地址: http://outofmemory.cn/sjk/9392255.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存