как нарисовать фигуру произвольной формы?
-
- Сообщения: 41
- Зарегистрирован: 20 сен 2012, 12:57
как нарисовать фигуру произвольной формы?
использую Canvas но не нашел метода по которому я смог бы нарисовать бы фигуру произвольного размера, к примеру используя массив точек. как мне такое сделать подскажите?
Re: как нарисовать фигуру произвольной формы?
У самого класса Canvas много методов для рисования, в данном случае есть метод drawLines
http://developer.android.com/reference/android/graphics/Canvas.html#drawLines(float[], android.graphics.Paint)
http://developer.android.com/reference/android/graphics/Canvas.html#drawLines(float[], android.graphics.Paint)
-
- Сообщения: 41
- Зарегистрирован: 20 сен 2012, 12:57
Re: как нарисовать фигуру произвольной формы?
этот метод я видел, проблема в том что область внутри должна быть к примеру зеленым цветом, а как её потом зарисовать не знаю.
Re: как нарисовать фигуру произвольной формы?
Можно использовать android.graphics.Pathiamtihonov писал(а):этот метод я видел, проблема в том что область внутри должна быть к примеру зеленым цветом, а как её потом зарисовать не знаю.
Пример 5-угольника
Код: Выделить всё
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.GREEN);
Path path = new Path();
path.moveTo(120, 30);
path.lineTo(210, 90);
path.lineTo(180, 180);
path.lineTo(60, 180);
path.lineTo(30, 90);
path.lineTo(120, 30);
path.close();
canvas.drawPath(path, paint);
-
- Сообщения: 41
- Зарегистрирован: 20 сен 2012, 12:57
Re: как нарисовать фигуру произвольной формы?
Спасибо большое, а то что то не получилось загуглить этот вопрос, с английским плохо у меня( а так рисовал график который мне нужен через треугольник нарисованный линиями и прямоугольник)
Re: как нарисовать фигуру произвольной формы?
Извиняюсь за оффтопик, но есть вопрос по теме.
Создавал тут тему (viewtopic.php?f=32&t=1972) но мне там никто так и не ответил.
Решил рисовать через обычный View с переопределённым onDraw.
Есть сложность: пока не понял, как нарисовать область, бОльшую экрана, по которой можно перемещаться, водя пальцем (типа как в приложениях с картами всяческими). Задал и вью, и RelativeLayout (корневой элемент в xml-исходнике моего фрагмента) setScrollContainer(true), а он всё равно не даёт ничего там перемещать. Там что-то ещё надо задавать?
Создавал тут тему (viewtopic.php?f=32&t=1972) но мне там никто так и не ответил.
Решил рисовать через обычный View с переопределённым onDraw.
Есть сложность: пока не понял, как нарисовать область, бОльшую экрана, по которой можно перемещаться, водя пальцем (типа как в приложениях с картами всяческими). Задал и вью, и RelativeLayout (корневой элемент в xml-исходнике моего фрагмента) setScrollContainer(true), а он всё равно не даёт ничего там перемещать. Там что-то ещё надо задавать?
Re: как нарисовать фигуру произвольной формы?
Подскажите пожалуйста, работает ли clipPath() с аппаратным ускорением. Ибо path.addCircle(x,y,r,ccw); с последующим c.clipPath(path); выделяет квадратную область вместо окружности, в то время как без АУ выделяется именно окружность. Заранее спасибо
P.S. В примере уважаемого damager82 используется c.drawPath(); который отлично работает, но не подходит потому что не дает поместить текстуру в выделенную область
P.S. В примере уважаемого damager82 используется c.drawPath(); который отлично работает, но не подходит потому что не дает поместить текстуру в выделенную область
Re: как нарисовать фигуру произвольной формы?
попробуй Shader, тут для узора с повторениями код.Nyashka писал(а):не дает поместить текстуру в выделенную область
[syntax=java]
paint = new Paint(Paint.FILTER_BITMAP_FLAG);
Shader shader = new BitmapShader(bitmap, Shader.TileMode.REPEAT,Shader.TileMode.REPEAT);
paint .setShader(shader);
[/syntax]
Последний раз редактировалось xr0m 29 май 2013, 22:07, всего редактировалось 1 раз.
Re: как нарисовать фигуру произвольной формы?
Попробуй дать для канвас ширину больше экрана, только зачем? Ты сдвигаешь, перерисовывается канвас, отсюда эффект сдвига. Но оно не за экраном. ИМХОdens писал(а): Решил рисовать через обычный View с переопределённым onDraw....