【发布时间】:2019-12-31 09:58:07
【问题描述】:
我想创建一个带有圆形框架的自定义浮动操作按钮。如下图
我最终为它制作了一个自定义视图。但它太有问题了。
这是onDraw函数
override fun onDraw(canvas: Canvas) {
super.onDraw(canvas)
val cx = (width / 2).toFloat()
val cy = (height / 2).toFloat()
val hShift = outerRadius * .4
val vShift = outerRadius * .05
circle.set(
(cx - outerRadius - hShift).toFloat(), (cy - 3 * outerRadius + vShift).toFloat(),
(cx + outerRadius- hShift).toFloat(), (cy - outerRadius+vShift).toFloat()
)
path.arcTo(circle, 0F, 85F)
path.lineTo(cx,cy-outerRadius)
circle.set(cx - outerRadius, cy - outerRadius, cx + outerRadius, cy + outerRadius)
path.arcTo(circle, 90F, 180F)
path.lineTo(cx,cy-outerRadius)
path.lineTo(cx, cy+outerRadius)
circle.set(
(cx - outerRadius- hShift).toFloat(), (cy + outerRadius - vShift).toFloat(),
(cx + outerRadius- hShift).toFloat(), (cy + 3 * outerRadius - vShift).toFloat()
)
path.arcTo(circle, 275F, 90F)
canvas.drawPath(path, paint)
}
我的问题:这是正确的做法吗? 我在想一个可绘制的矢量作为背景
PS:我也试过BottomNavigationView,但它在设计上位于底部
【问题讨论】:
标签: android xml android-custom-view vector-graphics android-vectordrawable