首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

android自定义view用path长方形

这次主要是练习一下Android的自定义view和path的相关使用,所以做了一个简单的demo:自定义一个view,并用path在上面画一个可以动态改变圆角大小的长方形。...name="round_radius" format="dimension" </attr </declare-styleable </resources 其中round_position指的是圆角的位置...这里属性类型定为flag(位或运算)这样就可以在布局中同时使用多个属性了,类似于EditText中定义文字样式:android:textStyle=”bold|italic”;round_radius指圆角大小...{ this.radius = radius; } public void refreshView() { invalidate(); } } 这里使用了path和贝塞尔曲线的绘制方法来绘制可动态调整圆角大小的长方形...layout_constraintTop_toTopOf="parent" app:round_position="left-bottom|right-bottom|right-top|left-top" / 这样就完成了一个简单的自定义可调整圆角长方形

55620
您找到你想要的搜索结果了吗?
是的
没有找到

Android自定义动画酷炫的提交按钮

目录 刚接到任务 动画分析 圆角矩形 让矩形变圆 让圆上移 在圆中绘制对勾 总结 1 刚接到任务 ?...2 动画分析 通过这个gif动画我们分析出动画过程的实质: 一个长方形(或者是圆角长方形)逐渐过渡成为两边是半圆的长方形,于此同时长方形两边向中间靠拢最终形成一个圆,然后圆上升一定高度,最后在圆里边画出对勾...第一步:先画出一个圆角矩形 ?...圆角矩形绘制完成之后就是改变圆角半径的大小使其两边形成半圆的效果,那么怎么才能让他成为半圆呐,来看看一张图,若要绘制成半圆效果,那么这个圆的直径就是view自身的高度,那么这个圆的半径就是height/...我们让矩形变圆角和矩形往中间缩放同时进行,然后圆在上移,最后绘制对勾。 ? 最终奉上我们自己一步一步完整实现的效果图: ? 至此我们可以理直气壮地带着作品找设计师互怼了 ?

1.6K30

HTML5 Canvas开发详解(基础一)

4.5 arcTo()弧线 //(cx, cy)表示控制点的坐标 //(x2, y2)表示结束点的坐标 //radius表示圆弧的半径 cxt.artTo(cx, cy, x2, y2, radius...lineWidth(定义线条宽度) //默认值为1,默认单位为px cxt.lineWidth = 整数; 5.1.2 lineCap(定义线帽样式) //属性值 //Butt:默认值,无线帽,每条线的头端和尾端都是长方形...,即不做任何处理 //Round:圆形线帽,每条线的头和尾都增加一个半圆,半圆的直径为线宽长度 //Square:正方形线帽,每条线的头和尾都增加一个长方形长方形的长度为线宽的一半,高度保持为线宽高度...cxt.lineCap = '属性值'; 5.1.3 lineJoin(定义两个线条交接处样式) //属性值 //miter:默认值,尖角,线段在交接处延伸直至交于一点 //round:圆角,连接处是一个圆角...,圆角所在圆的直径等于线宽长度 //bevel:斜角,连接处是一个斜角,斜角所在正方形的对角线长等于线宽长度 cxt.lineJoin = '属性值'; 5.2 线条操作方法 setLineDash()

2.4K20

属性动画的核心方法:ValueAnimator.ofInt(int... values)

比如 ValueAnimator.ofInt(0,100) , 实现的即数值从0平稳的变化到100 比如实现如下一个效果: 改变控件的样式,圆形和圆角长方形切换 实现思路很简单,即高度不变,改变控件的宽度...,即drawable类型的shape属性 (1)圆形,圆角为25dp(因为宽度为50dp,设置一半数值即为圆形效果), 背景绿色,再加一个白色的边,为了效果好看些 1 <?...,同上,不过圆角设置可以设置小一点,这个读者可以仿着圆角自己写一个,完整代码请到最后查看 3、动画的实现方法,以长方形到圆形为例,只需依赖ValueAnimator.ofInt()方法设置数值从25dp..., 圆形宽度为50dp, 因为设置的空间高度为50dp,圆角为25dp,即实现了圆形图标 8 // ofInt(int a, int b)表示 动画取值从a到b 9...30dp, 圆形宽度为50dp, 因为设置的空间高度为50dp,圆角为25dp,即实现了圆形图标 63 // ofInt(int a, int b)表示 动画取值从a到b 64

95720

轻松生成小程序分享海报

海报中的元素分类 <ignore_js_op style="word-wrap: break-word; margin: 0px; padding: 0px; text-decoration: none...image 要解决的问题 单位问题 canvas隐藏问题 圆角矩形、圆角图片 多段文字 超长文字和多行文字缩略问题 矩形包含文字 多个元素间的层级问题 图片尺寸和渲染尺寸不一致问题...、圆角图片** 由于canvas没有提供现成的圆角api,所以我们只能手工啦,实际上圆角矩形就是由4条线(黄色)和4个圆弧(红色)组成的,如下: <ignore_js_op style="word-wrap...(x1, y1, x2, y2, r) 接下来我们就可以非常轻松的写出生成圆角矩形的函数啦 /** * 画圆角矩形 */ _drawRadiusRect(x, y, w, h, r) { const...} 如果是画线框就使用this.ctx.stroke(); 如果是色块就使用this.ctx.fill(); 如果是圆角图片就使用 this.ctx.clip(); this.ctx.drawImage

2.4K30

AutoCAD工程制图 常见命令与注意事项全总结(120例)

或使用圆角(F)功能,右下角点击半径并输入后点击两个圆*(圆角只能是外切关系)。 26.直线打断功能(BR)。 27.线型CENTER,标准定位线的线型。标注时只能从定位线端点开始标注。...31.作图原理:先已知尺寸,再位置尺寸,最后做连接关系。 32.斜面作图需要平移线段寻找平行关系。善于利用tr。...52.负的数据相反方向复制阵列 53.斜面图形绘制,斜面图形可先按照水平完后再旋转。 54.标注样式在注释菜单栏中颜色的上方。...94.绘制长方形时,@后的数据分别是与X轴,Y轴对应的。 95.拉伸面可以对实体的面进行拉伸操作。(菜单栏里有) 96.类似轮毂的形状组合可以先复制一份模型,再依据其组合。...110.实体做圆角同样用圆角功能, 111.立体图用倒角命令也可以做倾斜面。 112.螺旋线:指定基点,指定圈数,然后用扫掠该路径,可以画出弹簧的模样, 113.选中标注,点击数字可以将数字移出来。

1.2K10

详解视觉误差对UI设计的影响和解决方案

icon 的时候,一定要把视觉尺寸这个无法用数字进行衡量的维度考虑进去。视觉重量小的元素要放大,视觉重量大的元素要缩小。...面对那些不需要由我们的 icon,比如分享到 Twitter、分享到 Instagram ,官方已有提供的 icon,用起来也要注意。...通常是长方形的表单如果和直径相等的圆形按钮摆在一起,必然也会出现圆形按钮看起来比较小的问题。 处理方法相信大家也都知道了,略微放大按钮,这样整个表单和按钮才能达到视觉平衡,视觉尺寸才能相等。...好吧,希望你能够看出来左边那颗按钮是有问题的,实际上我在这枚按钮的时候确实点了对齐,但是为什么还会出问题呢?跟文字按钮对齐一样,对齐的方式选错了。...这就不能依赖 Sketch 的对齐工具了,你要自己个圆形作为参考线来进行对齐。 ? 如下图,播放按钮也有三个角,那么做它的对齐工作也要注意啦。

1.2K10

Android自定义View--自己撸一个柱状图也没那么难

双条竖向 我们可以看到这个柱状图主要包括下面几个方面: 双条柱状图 横坐标月份 点击tips显示具体数值 灰色阴影(图上没有显示具体看代码) 柱状图渐变、圆角、点击变色 好了上面五点就是需求和UI所提出来的所有东西...,我们开始着手去“”吧。...、月份、柱状图、阴影 柱状图渐变以及点击变色 touch点击事件判断点击所属哪个月份,接口回调给activity显示具体月份数值 注意:onWindowVisibilityChanged这个方法...mHeight - 100 - list.get(i) * size, mChartWidth + mSize, mHeight - 100, mChartPaint) // ;// 长方形...mHeight - 100 - list.get(i) * size, mChartWidth + mSize, mHeight - 100, mChartPaint) // ;// 长方形

1.6K10

Canvas画图-鼠标移动图形

来个例子,先随便三个矩形: var rectList = [ [50,50,50,50], [120,120,80,60], [30,150,60,80] ]; var...然后先画出长方形的路径,完一个用isPointInPath方法判断一下点击点是否在当前路径中,如果在,就给当前的改颜色,如果不在就画出来然后继续画下一个长方形继续判断路径。...是不是很麻烦,isPointInPath只对当前路径有效,也就说我们不能把三个长方形完了再判断某个点是否在第一个长方形路径中,而必须是每次完一个长方形就要判断一次,而且Canvas中路径是不能保存的...所以这里我们在循环中不单单是绘制了点中的长方形,还要绘制没点的长方形。 拖动元素 基本原理就是上面那样,看到这里,你已经洞悉了Canvas实现点击等事件的小秘密。...因为之前在点击的时候我们已经把是哪个长方形被选中给保存在变量moveItem中了,所以这里就直接判断就好了。是要拖动的元素就把长方形的x,y对应拖动的距离进行更新。

2.8K50
领券