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

Добавление элемента - наследника View - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Может ли быть два виджета в одном проекте где у каждого будет своя активити настроек? http://www.cyberforum.ru/android-dev/thread695443.html
Попытался так сделать, все везде написал и в provider и в manifest, но все равно при добавлении второго виджета вылетает активити первого виджета :( Может так нельзя делать? Спасибо
Программирование Android Подключение к MySQL на Android Доброе утро! Подскажите пожалуйста способы коннекта к MySQL в разработке приложений на android. Покопался по форумам, гуглу, нашёл некоторые методы, но не знаю как и какой всё таки правильно или... http://www.cyberforum.ru/android-dev/thread695269.html
Как обработать нажатие ImageView Программирование Android
Создаю программу на Андроиде. И сразу столкнулся с проблемой. Почему то не получается... Создаю три объекта ImageView, и надо при нажатии на одну из картинок, чтобы она заменялась новой. Как это...
Программирование Android Добавление "балуна" в Yandex Map Kit
Здравствуйте. Пытаюсь используя сэмплы Yandex Map Kit сделать добавление балуна по нажатию кнопки. Необходимо чтоб балун появлялся именно на текущей позиции GPS, а затем уже передвигать его куда...
Программирование Android Ищу напарника http://www.cyberforum.ru/android-dev/thread693975.html
Здравствуйте, ищу напарника для написания простых приложений(пока что) под андроид на тему развлечений/программы для быта. пишу на java.Будем выкладывать в google play и зарабатывать) пишите в...
Программирование Android Как открыть проект на Eclips Добрый день. Подскажите пожалуйста как открыть проект на Eclips. У меня есть проект из учебника но что-то не получается его открыть. подробнее

Показать сообщение отдельно
niklep
2 / 2 / 1
Регистрация: 10.03.2010
Сообщений: 44
13.11.2012, 07:31  [ТС]
Спасибо за ответ.
Наверное, я из кода здесь лишнего понаудалял. Теперь поясню:
создайте класс Circle который будет иметь поля для хранения позиции и цвета а также метод отрисовки
Мой класс CircleView имеет поля для хранения позиции и цвета:
Java
1
2
3
4
5
6
public class CircleView extends View {
    ...
    private Paint paint; // paint хранит в себе цвет
    private int posX=0;
    private int posY=0;
        ...
а также метод отрисовки и задания размеров:
Java
1
2
3
4
5
6
7
8
9
10
11
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
        setMeasuredDimension((int)context.getCellWidth(), (int)context.getCellWidth());
    }
    
    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawCircle(cellWidth/2, cellWidth/2, radius, paint);
    }
в главной активити создайте массив типа Circle добавляйте в него новые объекты
Я так и поступаю:
Java
1
2
3
public class GameActivity extends Activity {
    ...
    private CircleView[][] circleArr; // матрица хранит в себе объекты класса CircleView
При создании нового круга я сохраняю его в этой матрице:
Java
1
2
3
4
5
6
7
8
9
10
11
private void addSingleCircle(int posCircleX, int posCircleY, int colorCircle) {
        circleArr[posCircleY-1][posCircleX-1] = new CircleView(this); // !!! Создаю объект круга
        ...
        circleArr[posCircleY-1][posCircleX-1].setColor(colorCircle);
        circleArr[posCircleY-1][posCircleX-1].setPosition(posCircleX, posCircleY);
        
        lpView.leftMargin=(int)((posCircleX-1)*getCellWidth()+getGridOffset()+posCircleX); // указываю отступы
        lpView.topMargin=(int)((posCircleY-1)*getCellWidth()+getGridOffset()+posCircleY); // указываю отступы
        
        relLayout.addView(circleArr[posCircleY-1][posCircleX-1],lpView); // добавляю круг на layout
    }
а в методе onDraw вашего View отрисовывайте циклом весь массив.
Так делать обязательно? Представим, у меня 70 кругов на поле, и при добавлении 71го я должен отрисовать все 71? Ну уж нет...

вы просто храните данные только про один круг, вот круг с последними данными и отображается
Я храню данные обо всех кругах в двумерном массиве (см. выше метод addSingleCircle()), а также каждый добавляю на Layout. Где я не прав?
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru