Android 实现仿QQ5.2的头像裁剪功能详解

这是一个自定义 View,称为 CutPicViewCutPicView 的结构共分为三层:

  1. 背景层(白色)
  2. Bitmap 层(图片层,即待裁剪的图片)
  3. 前景蒙版层(黑色、半透明)

在此三层基础上,裁剪出一个圆形图片,该图片不属于 CutPicView 的结构,而是通过对 CutPicView 进行裁剪得到的独立 bitmap。最上层的圆形图片用来直观地展示裁剪的效果和位置。具体步骤如下:

  • 将图片加载到 Bitmap 层,调整到适合裁剪的尺寸。
  • 使用前景蒙版层,给用户预览裁剪的范围。
  • 完成裁剪后,将生成的 bitmap 作为圆形图片呈现出来。

提示: 可以通过实现自定义的 onDraw 方法,对前景和背景层的透明度、位置等属性进行调整,以确保裁剪效果符合预期。

zip
QQCutPic.zip 预估大小:68个文件
folder
QQCutPic 文件夹
folder
bin 文件夹
folder
res 文件夹
file
R.txt 29KB
folder
classes 文件夹
folder
android 文件夹
folder
support 文件夹
folder
v7 文件夹
folder
appcompat 文件夹
file
R$layout.class 2KB
file
R$bool.class 763B
file
R$id.class 2KB
file
R$drawable.class 5KB
file
R$dimen.class 1KB
file
R$attr.class 5KB
file
R.class 1015B
file
R$styleable.class 6KB
file
R$string.class 1KB
file
R$integer.class 445B
file
R$color.class 627B
file
R$anim.class 629B
file
R$style.class 9KB
folder
com 文件夹
folder
xhj 文件夹
folder
qqcutpic 文件夹
file
MainActivity.class 2KB
file
MyImageView.class 4KB
file
MyImageView$1.class 2KB
file
ImageCut.class 4KB
file
CutPicActivity.class 1KB
folder
jimstin 文件夹
folder
cutpicdemo 文件夹
file
BuildConfig.class 353B
file
R$layout.class 2KB
file
R$bool.class 745B
file
R$id.class 3KB
file
R$drawable.class 5KB
file
R$dimen.class 1KB
file
R$attr.class 5KB
file
R$menu.class 431B
file
R.class 981B
file
R$styleable.class 6KB
file
R$string.class 1KB
file
R$integer.class 427B
file
R$color.class 609B
file
R$anim.class 611B
file
R$style.class 9KB
file
AndroidManifest.xml 1KB
folder
res 文件夹
folder
drawable-ldpi 文件夹
folder
values-v11 文件夹
file
styles.xml 334B
folder
menu 文件夹
file
cut_pic.xml 263B
file
main.xml 263B
folder
values-v14 文件夹
file
styles.xml 391B
folder
drawable-hdpi 文件夹
file
ic_launcher.png 7KB
file
demo.jpeg 170KB
folder
drawable-xhdpi 文件夹
file
ic_launcher.png 12KB
folder
drawable 文件夹
file
shape_draw.xml 127B
folder
drawable-xxhdpi 文件夹
file
ic_launcher.png 24KB
folder
values 文件夹
file
strings.xml 295B
file
styles.xml 697B
file
dimens.xml 220B
folder
values-sw720dp-land 文件夹
file
dimens.xml 277B
folder
drawable-mdpi 文件夹
file
ic_launcher.png 4KB
folder
values-sw600dp 文件夹
file
dimens.xml 203B
folder
layout 文件夹
file
activity_main.xml 792B
file
activity_cut_pic.xml 838B
file
proguard-project.txt 781B
file
ic_launcher-web.png 50KB
folder
assets 文件夹
folder
gen 文件夹
folder
android 文件夹
folder
support 文件夹
folder
v7 文件夹
folder
appcompat 文件夹
file
R.java 39KB
folder
com 文件夹
folder
jimstin 文件夹
folder
cutpicdemo 文件夹
file
BuildConfig.java 164B
file
R.java 164KB
folder
.settings 文件夹
file
org.eclipse.core.resources.prefs 55B
file
org.eclipse.jdt.core.prefs 177B
folder
src 文件夹
folder
com 文件夹
folder
xhj 文件夹
folder
qqcutpic 文件夹
file
ImageCut.java 3KB
file
MyImageView.java 5KB
file
MainActivity.java 1KB
file
CutPicActivity.java 962B
file
.project 844B
file
.classpath 475B
file
project.properties 608B
file
AndroidManifest.xml 1KB
folder
libs 文件夹
file
lint.xml 53B
...
zip 文件大小:353.23KB