gpt4 book ai didi

java - Android,创建自定义 ImageView 形状

转载 作者:行者123 更新时间:2023-12-01 09:45:13 25 4
gpt4 key购买 nike

我需要创建一个在运行时填充动态颜色的 View 。我已经完成了这项任务,但是实际 View 需要在右侧有一个“峰值”。通常,ImageView 仅是正方形或矩形。有谁知道我如何完成在 View 中添加三角形峰?

例如:

enter image description here

最佳答案

您可以重写 ImageViewonDraw 事件,并对 canvas 对象执行任何您需要的操作。

    public class MyImageView extends ImageView {
...
@Override
public void onDraw(Canvas canvas){
super.onDraw(canvas);
Point[] point = ... //create three points here for the triangle
Paint paint = ... // create your desired color
drawTriangle(canvas, point, paint);
}

对于三角形绘制(参见this SO answer):

private void drawTriangle(Canvas canvas, Point[] point,  Paint paint) {

float [] points = new float[8];
points[0] = point[0].x;
points[1] = point[0].y;
points[2] = point[1].x;
points[3] = point[1].y;
points[4] = point[2].x;
points[5] = point[2].y;
points[6] = point[0].x;
points[7] = point[0].y;

canvas.drawVertices(VertexMode.TRIANGLES, 8, points, 0, null, 0, null, 0, null, 0, 0, paint);
Path path = new Path();
path.moveTo(point[0].x , point[0].y);
path.lineTo(point[1].x,point[1].y);
path.lineTo(point[2].x,point[2].y);
canvas.drawPath(path,paint);
}

关于java - Android,创建自定义 ImageView 形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38107236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com