做了一个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(datagetData());方法里去执行剪裁。

7在cropPhoto方法里将携带数据跳转到裁剪界面中裁剪,裁剪完成后又要回到onActivityResult回调方法里,执行裁剪完的数据回调工作。

8在onActivityResult回调方法里,裁剪完的将运行setPicToView 方法保存。保存的将在下次启动activity时作为历史头像调用。

package comexamplelenovomydemoapp;

import androidappActivity;

import androidcontentIntent;

import androidcontentpmPackageManager;

import androidgraphicsBitmap;

import androidgraphicsBitmapFactory;

import androidgraphicsdrawableBitmapDrawable;

import androidgraphicsdrawableDrawable;

import androidnetUri;

import androidosBuild;

import androidosEnvironment;

import androidosStrictMode;

import androidproviderMediaStore;

import androidsupportannotationNonNull;

import androidsupportv4appActivityCompat;

import androidsupportv4contentContextCompat;

import androidsupportv7appAlertDialog;

import androidsupportv7appAppCompatActivity;

import androidosBundle;

import androidutilLog;

import androidviewLayoutInflater;

import androidviewView;

import androidwidgetImageView;

import androidwidgetLinearLayout;

import androidwidgetTextView;

import androidwidgetToast;

1、首先,需要获取ImageView的Drawable对象,可以使用imageViewgetDrawable方法。

2、判断Drawable对象为BitmapDrawable类型,如是,则调用BitmapDrawable的getBitmap方法获取Bitmap对象。

3、Drawable对象不是BitmapDrawable类型,则需要使用imageViewmeasure方法先对ImageView进行测量。

4、获取ImageView的测量宽度和测量高度,可以使用imageViewgetMeasuredWidth和imageViewgetMeasuredHeight方法。

5、需要精确测量ImageView中的厚度,可以使用Bitmap对象的getWidth和getHeight方法分别获取的宽度和高度。

用成员函数 CBitmap::GetBitmapBits 和 CBitmap::SetBitmapBits 可以读取和设置 你需要的字节。 CBitmap::GetBitmap可以获取Bitmap的基本信息。

改变颜色,可以修改相应点的颜色数值。

一般来说一个点被精确的认定为1/72英寸,在WPF中,采用的设备无关单位即1/96英寸

所以程序中获取的大小 比真实的大小要大一点, 获取到大小后进行相应的转换即可获得原来的尺寸 如: height=height72/96

以上就是关于做了一个Android的demo实现头像裁剪上传,但是拍照完成后出现如下图问题,图库也一样大神们帮忙看看全部的内容,包括:做了一个Android的demo实现头像裁剪上传,但是拍照完成后出现如下图问题,图库也一样大神们帮忙看看、imageview如何测厚度、MFC中,如何将CBitmap中的图片复制到另一CBitmap的一块区域中,即如何读取一个CBit等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存