draw custom views in android
我想在 android 中绘制类似的东西,将其用作按钮。怎么做?任何链接或建议?是贝塞尔曲线吗?
如评论中所述,您可以创建一个 PNG 并直接使用它。如果您希望侧面独立于曲线缩放,您可以对图像进行 9-patch。
根据这篇文章,您现在可以选择在 xml 中定义可绘制的路径。但仅适用于 Lollipop 及以上。
最后,您可以创建一个基本按钮并使用
编辑:
我有一点时间来创建一个
在我的实现中,我使用了渐变而不是纯色,因为它不会对实现产生影响,而且它是一个更通用的示例。
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 |
public class PathView extends View { private Paint paintFill; private Paint paintLine; private Paint paintClear; private Path path; private int colour; private float x0; public PathView(Context context) public PathView(Context context, AttributeSet attrs) public PathView(Context context, AttributeSet attrs, int defStyleAttr) public PathView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) @Override initialize(); private void initialize() paintFill = new Paint(); paintLine = new Paint(); paintClear = new Paint(); public int getColour() public void setColour(int colour) initialize(); public void setVars(float x1, float y1, float x2, float y2) path = new Path(); float cx = getWidth() / 2; this.x0 = 0; // Move to bottom, draw up path.cubicTo(this.x1, this.y1, this.x2, this.y2, this.x3, this.y3); // Draw down invalidate(); @Override if (path != null && paintFill != null) canvas.save(); canvas.drawPath(path, paintLine); |