android 圆形头像方案,android圆形头像实现
今天我们学习圆形头像的实现原理,先上图
demo实例
基本上能满足一般的圆形头像功能实现
其中包括控件的大小,控件四个角的弧度控制以及外圈的颜色和宽度
现在我们看看具体的使用:
android:id="@+id/rotating_circle_view"
android:layout_width="100dp"
android:layout_height="100dp"
android:src="@mipmap/pic"
app:circle_color="#f00"
app:circle_kind="all"
app:circle_width="2dp" />
其中有三个自定义属性
app:circle_color 代表外圈的颜色
app:circle_width 代表外圈的宽度
app:circle_kind 代表圆形的展示方式,分五种
从上面的图中我们是可以看出来的,取值分别为:
具体的使用方式就是这么简单,下面我们看看具体是怎么实现的
首先我们需要知道BitmapShader和Matrix这俩个东西
具体的作用说下,BitmapShader用于设置图片平铺方式,分三种:
:CLAMP(拉伸)、MIRROR(镜像)、REPETA(重复)
这里借用别人的图片一下看看是什么样子
拉伸
镜像
重复
大致表达的意思就是当图片大小不足控件的大小时,图片以外空白区域如何展示
该案例里面我们使用了CLAMP功能,具体代码实例:
bitmapShader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
Matrix 这个本身叫做矩阵,放在图片处理中可以用于图片的拉伸,缩放,倾斜等一些操作,当我们的图片不满我们的控件时,我们可以控件图片的大小以适应控件,大概就是这个作用。
该案例里面我们用了俩个功能,缩放和位移,代码示意:
matrix.setScale(scale, scale);
matrix.postTranslate((int) (dx + 0.5f) + borderWidth, (int) (dy + 0.5f) + borderWidth);
当这俩种各种设置好之后,matrix可以设置给BitmapShader,代码:
bitmapShader.setLocalMatrix(matrix);
bitmapShader可以设置给paint,代码:
imgPaint.setShader(bitmapShader);
从bitmapShader的实例化那里我们就已经获取到了图片bitmap的必要信息,此时经过这些操作,bitmap的信息已经被携带在了paint里面,下面我们就可以利用携带了bitmap信息的paint任意画图,那么圆形头像的实现就很简单了,代码:
canvas.drawCircle(getWidth() / 2, getHeight() / 2, imgRadius, imgPaint);
看见了,就是利用最简单的画圆就可以实现我们的圆形头像,那么外边圆这里就不用细说了吧,再花一个半径比这个大一点的圆即可,好了,今天的自定义view就学习到这,代码实例见:
代码点我1-3
android 圆形头像方案,android圆形头像实现相关推荐
- android+反调试+方案,Android反调试笔记
1)代码执行时间检测 通过取系统时间,检测关键代码执行耗时,检测单步调试,类似函数有:time,gettimeofday,clock_gettime. 也可以直接使用汇编指令RDTSC读取,但测试AR ...
- android 屏幕录制方案,Android录屏的三种解决方案
本文总结三种用于安卓录屏的解决方案: adb shell命令screenrecord MediaRecorder, MediaProjection MediaProjection , MediaCod ...
- android 插件化 方案,Android应用开发之Android 插件化,qihoo360插件方案配置教程
本文将带你了解Android应用开发Android 插件化,qihoo360插件方案配置教程,希望本文对大家学Android有所帮助. Android 插件化,qihoo360插件方案 目录 Andr ...
- android tts实现方案,Android自动朗读(TTS)的实现
前言: Android提供了自动朗读支持.可以对指定文本内容进行朗读,从而发生声音:还允许把文本对应的音频录制成音频文件,方便以后播放.Android的自动朗读主要通过TextToSpeech来完成, ...
- android 屏幕录制方案,Android录屏的三种方案
本文总结三种用于安卓录屏的解决方案: adb shell命令screenrecord MediaRecorder, MediaProjection MediaProjection , MediaCod ...
- Android音频录制方案,Android录屏的三种方案
本文总结三种用于安卓录屏的解决方案: adb shell命令screenrecord MediaRecorder, MediaProjection MediaProjection , MediaCod ...
- android专项测试 方案,Android性能专项测试.pdf
目录 前言 battery-historian试用 MemoryMonitor工具 HeapViewer工具 AllocationTracker(DeviceMonitor) AllocationTr ...
- android布局优化方案,Android启动优化-布局优化
Android启动优化-布局优化 安卓应用开发发展到今天,已经成为一个非常成熟的技术方向,从目前的情况看,安卓开发还是一个热火朝天的发展,但高级人才却相对较少,如今移动互联网的开发者也逐渐开始注重插入 ...
- android 启动优化方案,Android 项目优化(五):应用启动优化
介绍了前面的优化的方案后,这里我们在针对应用的启动优化做一下讲解和说明. 一.App启动概述 一个应用App的启动速度能够影响用户的首次体验,启动速度较慢(感官上)的应用可能导致用户再次开启App的意 ...
- Android音频录制方案,Android录音,录制其他App播放的声音
Android录音,录制其他App播放的声音 从Android10(SDK 29)版本开始,可以设置录音App的源为其他App,这样就可以录制其他App播放的声音 此方案有以下注意几点 设置了源为其他 ...
最新文章
- 中科院刘焕勇老师知识图谱关于schema博客
- 【C++】 66_C++ 中的类型识别
- 分分钟入门【Nodejs】—一个网页是如何生成的
- Kubernetes的ConfigMap说明
- 关于负载均衡的三种传输模式(反向代理,透传,三角)
- 《JavaScript专家编程》——第1章 对象和原型 1.1鸟瞰JavaScript
- 7,7显示选中的目标信息
- PHP+MySql+PDO实现简单登录、注册
- C语言求两个数的最大公约数
- Machine Learning ——Homework 8
- grub2 中的boot命令
- c语言while函数作用,c语言while(c语言while循环用法)
- To_Heart—题解——POI2012 Rendezvous
- 2020博客之星年度总评选 - 显示排名
- WordPress 安装时常见的数据库的错误
- 交换机与路由器的基本工作原理
- 使用xilinx最新工具vitis2019.2,定制zc702开发板linux系统
- fftshift小技巧
- 报考浙大MBA项目的关键点之一:提前批面试解析
- C语言:学生信息管理系统(详解+源码)