Я хотел бы нарисовать криволинейный счетчик часов. До сих пор я только добрался до изгиба.Рисование изогнутых текстовых счетчиков часов мудрых вместо часов мудрых
public class TextDrawActivity extends AppCompatActivity {
@Override protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new TextDrawingView(this));
}
static class TextDrawingView extends View {
private Path arc;
private RectF bounds;
private TextPaint textPaint;
public TextDrawingView(Context context) {
super(context);
arc = new Path();
bounds = new RectF();
textPaint = new TextPaint();
textPaint.setAntiAlias(true);
textPaint.setTextSize(50);
textPaint.setColor(Color.BLACK);
}
@Override public void draw(Canvas canvas) {
super.draw(canvas);
bounds.set(0f, 0f, getWidth() * 0.8f, getHeight()/2.f);
arc.rewind(); // Clear internal structure.
arc.addArc(bounds, 45, 360);
canvas.drawTextOnPath("Lorem ipsum dolor sit amet, consectetur adipisicing elit.",
arc, 0, textPaint.getTextSize()/2.f, textPaint);
}
}
}
С помощью этого кода, он будет выглядеть следующим образом:
Как я могу сделать встречное текст часовой стрелки, так что не будет с ног на голову больше?
Вы triend инициализировать 'Path' [против часовой стрелки] (https://developer.android. ком/ссылки/Android/графика/Path.Direction.html)? – azizbekian
@azizbekian нет перегрузки для addArc с направлением – Niklas
Я думаю, что [это] (https://hemantvc.blogspot.de/2016/10/text-curve-clockwise-and-anticlockwise_95.html) поможет вам. – azizbekian