#java #android #canvas
#java #Android #холст
Вопрос:
В настоящее время я изучаю Canvas в Android Studio, и я не очень уверен в использовании правильного заголовка, но я застрял на том, как управлять положением треугольника при перетаскивании красной точки с помощью Seekbar. ниже приведены подробности
Ниже приведены коды, с помощью которых я успешно нарисовал треугольник.
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setColor(Color.RED);
canvas.drawRoundRect(100, 300, 900, 700, 50, 50,paint);
Point pointTop = new Point(250, 400);
Point pointLeft = new Point(150, 150);
Point pointRight = new Point(350, 150);
paint.setColor(Color.YELLOW);
path.setFillType(Path.FillType.EVEN_ODD);
path.lineTo(pointTop.x, pointTop.y);
path.lineTo(pointLeft.x, pointLeft.y);
path.lineTo(pointRight.x, pointRight.y);
path.lineTo(pointTop.x, pointTop.y);
path.close();
canvas.drawPath(path, paint);
}
Результат изображения:
Ожидаемый результат
Примечание: есть только 1 красная точка и 1 треугольник.
очень признателен =)
Ответ №1:
Я решил свою проблему после прочтения документов по ссылке ниже и добавил коды
https://developer.android.com/reference/android/graphics/Path
Наслаждайтесь 🙂
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
paint.setColor(Color.RED);
canvas.drawRoundRect(100, 300, 900, 700, 50, 50,paint);
Point pointTop = new Point(250, 400);
Point pointLeft = new Point(150, 150);
Point pointRight = new Point(350, 150);
paint.setColor(Color.YELLOW);
--------------------- added -------------------------------
path.moveTo(pointLeft.x, pointLeft.y);
path.moveTo(pointRight.x, pointRight.y);
path.moveTo(pointTop.x, pointTop.y);
path.reset();
--------------------- added -------------------------------
path.setFillType(Path.FillType.EVEN_ODD);
path.lineTo(pointTop.x, pointTop.y);
path.lineTo(pointLeft.x, pointLeft.y);
path.lineTo(pointRight.x, pointRight.y);
path.lineTo(pointTop.x, pointTop.y);
path.close();
canvas.drawPath(path, paint);
}
Ответ №2:
Посмотрите на класс Node, а затем особенно на setTranslateX.
Комментарии:
1. Привет, DrPhill, спасибо за совет. После нескольких часов чтения я признаю, что мои основы недостаточно хороши, поэтому, к сожалению, я все еще понятия не имею, как использовать это для решения моей проблемы: (