【发布时间】:2021-06-30 00:43:03
【问题描述】:
在 Android 应用程序中,我想在画布中绘制一个按钮,就像下面的图像一样
我尝试了一些堆栈溢出的答案,但无法获得确切的输出,尤其是下面的光影。我最糟糕的代码如下
val corners = floatArrayOf(
80f, 80f, // Top left radius in px
80f, 80f, // Top right radius in px
0f, 0f, // Bottom right radius in px
0f, 0f // Bottom left radius in px
)
val path = Path()
val rect = RectF(550f, 500f, 100f, 300f)
paint.style = Paint.Style.FILL;
paint.color = Color.WHITE;
path.addRoundRect(rect, corners, Path.Direction.CW)
canvas?.drawPath(path, paint)
paint.style = Paint.Style.STROKE;
paint.color = Color.BLACK;
path.addRoundRect(rect, corners, Path.Direction.CW)
canvas?.drawPath(path, paint)
paint.setColor(Color.RED)
paint.setStyle(Paint.Style.FILL)
val paint2 = Paint()
paint2.setColor(Color.GREEN)
paint2.setTextSize(50f) //set text size
val w: Float = paint2.measureText("VIEW CAMPSITE MAP") / 2
val textSize: Float = paint2.textSize
canvas?.drawText("VIEW CAMPSITE MAP", 300f, 300f ,paint2);
我也无法将文本设置在正确的位置
我还需要一个渐变来显示像真实材质按钮一样的凸出状态
并且还需要画布/绘画中的点击监听器
我需要它在纯画布中,而不是在任何视图中绘制
请帮帮我
【问题讨论】:
标签: android android-layout kotlin android-view android-canvas