Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Taxip
13 / 13 / 7
Регистрация: 28.09.2013
Сообщений: 364
#1

Нарисовать круг используя Canvas - Программирование Android

20.06.2015, 02:15. Просмотров 756. Ответов 4
Метки нет (Все метки)

Здравствуйте. Совсем недавно начал изучать Java ME, такой вопрос, неужели все так сложно с Canvas? Разве обязательно, чтобы нарисовать простейший круг, мне необходимо вместо моего активити, создавать класс, где будет переопределен onDraw. До этого юзал делфи, там это делалось намного проще, на форму кидался компонент, далее уже в этом компоненте рисовались фигуры. А тут получается, чтобы нарисовать круг на моем активити, мне надо вместо активити создавать класс, который будет рисовать круг. Что-то у меня совсем каша в голове. Может все таки можно каким-нибудь образом рисовать круг на моем активити, без переопределения метода onDraw, нарисовать круг просто поверх моего активити. Гуглил этот вопрос, но в выдаче на первых ~20 сайтах написан один и тот же код с практически одинавым описанием.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2015, 02:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нарисовать круг используя Canvas (Программирование Android):

"Нарисовать" массив, используя Canvas и графические примитивы - Программирование Android
Имеется двумерный массив состоящий из нулей и единиц, где нуль должен отображаться как квадрат. Вопрос в том, как все-таки "нарисовать"...

Как нарисовать Bitmap на Canvas'е - Программирование Android
Здравствуйте, возникла проблема не могу поменять обычный фон WHITE на этот...

Нарисовать круг не используя оператор CIRCLE. - Pascal
Нарисовать круг не используя оператор CIRCLE.

Нарисовать флаги, используя свойство Canvas - C++ Builder
Доброго времени суток! Ребята помогите нарисовать в Билдере используя свойство Canvas флаги: Азербайджана, Камеруна, Ямайки и Северной...

Нарисовать круг не используя circle, а через Пи, cos или sin - Turbo Pascal
x:=0; repeat x:=x+0.01; y:=2*sin(x)*pi; Point(x,y); until keypressed; вот как-то через это надо сделать окружность, но у...

Нарисовать круг из "*" используя циклы - C (СИ)
Здравствуйте! Нужно нарисовать круг из "*" используя циклы. Знаю, что выглядеть это должно так: для каждой i { для каждой j...

4
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
20.06.2015, 03:56 #2
Вот самый простой способ. Проще нет.
0
Taxip
13 / 13 / 7
Регистрация: 28.09.2013
Сообщений: 364
20.06.2015, 03:59  [ТС] #3
Mikalai, Я видел эту статью Повторюсь еще раз, тут перерисовывается весь экран, то есть все кнопки, текст и т.п. пропадут. Мне необходимо, чтобы круги рисовались только на определенной части экрана.
0
Mikalai
261 / 237 / 95
Регистрация: 11.01.2015
Сообщений: 663
20.06.2015, 04:29 #4
Размести SurfaceView там где тебе нужно и рисуй что хочешь
1
akyma40
16 / 15 / 3
Регистрация: 20.05.2015
Сообщений: 115
20.06.2015, 09:13 #5
не надо вместо активити создавать класс, просто делаешь в своем xml файле вот такую запись:
XML
1
2
3
4
5
<com.example.имя_проэкта.имя_класса
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   android:id="@+id/свой_id"
/>
при этом твоя активити остается такой же как и была
и потом твой класс наследуешь от View
и получается вот что:
Java
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
public class SomeView extends View {
 
Paint paint;
int X;
int Y;
final static int Radius = 20;
 
public SomeView(Context context, AttributeSet attrs) {
    super(context, attrs);
    paint = new Paint();
    paint.setColor(Color.YELLOW);
    paint.setStyle(Style.FILL);
    X = 30;
    Y = 30;
}
 
@Override
protected void onDraw(Canvas canvas)// метод OnDraw вызвается Андроидом
                                    // тогда, когда нужно отрисовать данный
                                    // View
{
    canvas.drawCircle(X, Y, Radius, paint);
    invalidate();// invalidate() нужен для того, чтобы оповестить Android,
                    // что нужно выполнить метод OnDraw снова, без него View
                    // не будет перериcовываться.
}
}
0
20.06.2015, 09:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2015, 09:13
Привет! Вот еще темы с ответами:

Canvas круг столкновение со стеной - HTML5 Canvas
Помогите сделать столкновение со стеной как в игре Agario , там когда он сталкивается с ней по мере захождения за неё исчезает (вплоть до...

Разбить круг на полигоны html canvas - HTML5 Canvas
Уважаемые подскажите каким способом можно разбить круг(2d), на полигоны Как я понимаю версткой этого не достичь скорее всего, и думаю...

Нарисовать круг - JavaFX
Привет. Помогите нарисовать круг после нажатия на кнопку &quot;Нарисовать&quot;. Хотел рисовать прямо на Frame.Я не понимаю что надо писать в...

Нарисовать круг - Delphi
помогите нарисовать круг


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.