我正试图划一条线,但我需要考虑行程帽的宽度,这样我才不会溢出容器。
我有这样的代码..。
private void initialize() {
    this.paint = new Paint();
    this.paint.setColor(Color.BLACK);
    this.paint.setStyle(Paint.Style.STROKE);
    this.paint.setStrokeCap(Paint.Cap.ROUND);
    this.paint.setStrokeWidth(1);
}
public void setStrokeWidth(float strokeWidth) {
    this.paint.setStrokeWidth(strokeWidth);
}
public void onDraw(Canvas canvas) {
    int x_start, x_end, y, cap_width;
    y = this.getHeight() / 2;
    x_start = cap_width; //Need to compensate for cap.
    x_end = this.getWidth() - cap_width; //Need to compensate for cap.
    canvas.drawLine(x_start, y, x_end, y, paint);
}注意,在上面代码的onDraw方法中,我需要计算帽宽。我怎么算这个?
发布于 2015-03-06 23:10:06
在写这个问题的时候,我意识到答案对一些人来说可能是相当明显的。对于那些没有清晰思考的人(正如我所没有的),这里有一个解决方案。
帽的半径将永远是行程宽度的一半。
cap_width = (int)paint.getStrokeWidth / 2;https://stackoverflow.com/questions/28909206
复制相似问题