android Imageview 随心所欲定制四个圆角
android Imageview 随心所欲定制四个圆角
实现效果图如下
一个四个圆角的view 包含一个上面两个圆角的Imageview ,这样的设计比较美观,但是这样在安卓端实现让我思考了一段时间,期间想到了两种实现方案去做,但是效果都不理想。
而后在同事想提醒之下,想到了一个完美的实现方案,
代码实现
需要重写Imageview 就可以实现 , 图片使用Glide 加载
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Path;
import android.graphics.RectF;
import android.util.AttributeSet;import com.blankj.utilcode.util.SizeUtils;/**用来显示不规则图片,* 上面两个是圆角,下面两个是直角* */
public class OvalImageView extends android.support.v7.widget.AppCompatImageView {/*圆角的半径,依次为左上角xy半径,右上角,右下角,左下角*/ //此处可根据自己需要修改大小private float[] rids = {SizeUtils.dp2px(5), SizeUtils.dp2px(5), SizeUtils.dp2px(5), SizeUtils.dp2px(5), 0.0f, 0.0f, 0.0f, 0.0f,};public OvalImageView(Context context) {super(context);}public OvalImageView(Context context, AttributeSet attrs) {super(context, attrs);}public OvalImageView(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);}@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {int width = MeasureSpec.getSize(widthMeasureSpec);setMeasuredDimension(width, width);}/*** 画图** @param canvas*/protected void onDraw(Canvas canvas) {Path path = new Path();int w = this.getWidth();int h = this.getHeight();/*向路径中添加圆角矩形。radii数组定义圆角矩形的四个圆角的x,y半径。radii长度必须为8*/path.addRoundRect(new RectF(0, 0, w, h), rids, Path.Direction.CW);canvas.clipPath(path);super.onDraw(canvas);}
}
下面是工具类的实现,将dp 转换成px 适配手机
/*** dp转px** @param dpValue dp值* @return px值*/public static int dp2px(final float dpValue) {final float scale = Utils.getApp().getResources().getDisplayMetrics().density;return (int) (dpValue * scale + 0.5f);}
此处就可以完美收工
android Imageview 随心所欲定制四个圆角相关推荐
- 【和UI斗智斗勇的日子】Android实现一个只有四个圆角有边框的边框
加一个边框 如下图所示,这是安卓中最基础的一个边框 它的代码是这样实现的 <shape xmlns:android="http://schemas.android.com/apk/re ...
- android imageview 加边框,RCImageView 自定义圆角ImageView,带边框效果
概况 RCImageView 圆型或者圆角图片(带有边框效果),适配了ImageView的ScaleType属性 RoundImageView 定义圆角图片,四个角圆角弧度可各自定义,也可不定义默认角 ...
- Android—ImageView—自定义四个圆角角度
1. 自定义SelectableRoundedImageView类,代码如下: package com.dfhx.project.myview; import android.annotation.S ...
- Android ImageView 四个角自定义角度,以及角度的变换
背景: 在正常开发过程中,我们经常会发现一些图片有各种各样的显示,有圆角.直角.圆形.不规则图形等?比较常见的是圆形,还有圆角.今天我们将讲述圆角.四个角不同度数以及通过圆角巧妙变成圆形 1.如果大家 ...
- Android BitmapShader 实战 实现圆形、圆角图片
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/41967509,本文出自:[张鸿洋的博客] 1.概述 记得初学那会写过一篇博客An ...
- Android显示九宫图(自定义圆角,仿微信九宫格图)
详细解析Android显示九宫图(自定义圆角,仿微信九宫格图) 这是一个自定义九宫格图片框架,里面有设置圆角大小,还有当图片一张的时候控件自定义的大小,图片的间隔,四张图片的时候图片自定义为两行两列等 ...
- Android项目实战(四):ViewPager切换动画(3.0版本以上有效果)
原文:Android项目实战(四):ViewPager切换动画(3.0版本以上有效果) 学习内容来自"慕课网" 一般APP进去之后都会有几张图片来导航,这里就学习怎么在这张图片切换 ...
- 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统(瘋耔修改篇二)...
第四章.Android编译系统与定制Android平台系统 4.1Android编译系统 Android的源码由几十万个文件构成,这些文件之间有的相互依赖,有的又相互独立,它们按功能或类型又被放到不同 ...
- Android开发笔记(四十三)点击事件
按钮点击 常用按钮点击 1.单击事件,主要用于Button和ImageButton控件,布局视图与TextView.ImageView控件用的也比较多.相关类名与方法说明如下: 监听器类名 : Vie ...
最新文章
- 全网最具深度的三次握手、四次挥手讲解,深夜思考
- 12日疯人认证百度云_百度云智峰会12月17日召开,央视财经对话现场要做一场高端访谈...
- jQuery Event.stopPropagation() 函数详解
- shell的date
- UIButton中的三个UIEdgeInsets属性
- DenseNet详述
- neo4j数据浏览器_Neo4j:在Neo4j浏览器的帮助下探索新数据集
- c语言输出后面空格,新人提问:如何将输出时每行最后一个空格删除
- 框架笔记:记录XLua的简单接入
- Linux常用命令之:软件安装命令
- flash as3+php上传源文件下载
- excel选中行变色
- 玩游戏计算机配置,电脑玩游戏主要看什么配置 玩大型游戏电脑配置推荐
- [字节跳动]2018秋招算法题【持续更新中】
- Unirech腾讯云国际站代充-云服务器系统盘使用问题
- matlab竖向正负柱状图,echarts竖向正负柱状图【如何用EXCEL做正负柱状图?请高手指点,谢谢】...
- spyder pyecharts不显示_逆袭的IGZO-IPS小金刚!微星PAG272QRZ显示器评测:色域、响应速度更优秀...
- ZUCC_BB平台-Quiz B-3-5-答案
- Matlab_Robotic_Toolbox 机器人工具箱
- 基于bytom 智能合约_基于HTTP的合约测试@ Gamesys
热门文章
- 《刺客信条》等开发者如何解决无处不在的游戏Bug?
- Java基础--24--println和print和printf的区别
- 会考计算机成绩查询入口官网,2019会考成绩查询网址入口 高中会考怎么查成绩...
- 星起航:猜你喜欢和精选联盟的侧重点不同之处在哪
- linux 16.04系统下载,Ubuntu MATE 16.04 LTS 发布下载
- 尚硅谷张天禹Vue课程v-for中key的原理动画PPT(免费领取)
- 从three.js的字体文件中提取部分字符
- 复联中你最喜欢的人是谁?排多少名?
- linux系统查看centos版本号
- 专升本-计算机公共课考点(2)——Windows 7 操作系统