4 / 4 / 0
Регистрация: 10.03.2010
Сообщений: 44
|
|||||||||||
1 | |||||||||||
Добавление элемента - наследника View12.11.2012, 20:12. Показов 2817. Ответов 10
Метки нет (Все метки)
Здравствуйте. Пишу для Android простенькую игрушку. Для нее мне понадобилось написать класс, рисующий круг - наследник View. На экране одновременно должно быть множество кругов. Но у меня проблема в том, что отображается на экране только тот круг, который я последним добавил, а предыдущие исчезают. Подскажите, где я ошибся?
Моя основная Активити:
Но рисуется только второй. И так, какие бы координаты я не указал, рисуется всегда тот, который рисуется последним.
0
|
12.11.2012, 20:12 | |
Ответы с готовыми решениями:
10
Реализация наследника View Программное добавление View Программное добавление View Программное добавление View |
22 / 8 / 0
Регистрация: 13.07.2012
Сообщений: 66
|
|
12.11.2012, 22:10 | 2 |
создайте класс Circle который будет иметь поля для хранения позиции и цвета а также метод отрисовки, в главной активити создайте массив типа Circle добавляйте в него новые объекты, а в методи onDraw вашего View отрисовывайте циклом весь массив.
Добавлено через 2 минуты вы просто храните данные только про один круг, вот круг с последними данными и отображается
0
|
4 / 4 / 0
Регистрация: 10.03.2010
Сообщений: 44
|
|||||||||||||||||||||
13.11.2012, 07:31 [ТС] | 3 | ||||||||||||||||||||
Спасибо за ответ.
Наверное, я из кода здесь лишнего понаудалял. Теперь поясню:
0
|
22 / 8 / 0
Регистрация: 13.07.2012
Сообщений: 66
|
|
13.11.2012, 12:10 | 4 |
Да, я действительно вас не правильно понял кстати, а зачем вам матрица если вы и так координаты храните внутри объекта?
Добавлено через 2 минуты честно говоря не могу сообразить в чем ошибка... но по мне проще было бы рисовать это все прямо на канве, я подумал сначала, что вы так и делаете, поэтому и посоветовал циклом отрисовывать.
0
|
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
|
|
13.11.2012, 13:27 | 5 |
0
|
4 / 4 / 0
Регистрация: 10.03.2010
Сообщений: 44
|
|
13.11.2012, 21:10 [ТС] | 6 |
2 Creative: Матрица мне нужна для того, чтобы в последующем обратиться к созданному кругу(мне их надо двигать).
Добавлено через 6 минут 2 V0v1k: видимо, ты нашел проблему. Спасибо. Чуть позже вечером окажусь при исходниках, проверю. Также нашел цитату с уроков по Android: Добавлено через 5 часов 50 минут Проверил, проблема решилась выделением для каждого экземпляра круга своего LayoutParams. Всем спасибо!
0
|
Mobile Developer
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
|
|
13.11.2012, 22:38 | 7 |
Можно не накладывать новые слои а просто рисовать на текущем слое и вообще лучше использовать SurfaceView
0
|
4 / 4 / 0
Регистрация: 10.03.2010
Сообщений: 44
|
|
14.11.2012, 07:08 [ТС] | 8 |
2 lifestyle: Если я нарисую круги просто на канве, то мне потом придется изобретать велосипед для того, чтобы передвигать эти круги. А в виде отдельных объектов (наследников View) - можно использовать встроенные анимации.
SurfaceView мне не нужен, у меня простейшая 2D графика.
0
|
31 / 31 / 3
Регистрация: 26.06.2012
Сообщений: 166
|
|
14.11.2012, 10:28 | 9 |
Соглашусь с LifeStyle. С SurfaceView все было бы в разы проще. И никаких проблем с перемещением кругов не будет. Круги можете также создавать как отдельные объекты, но своего типа, а не наследники от View. Проблем с анимацией тут тоже особых не будет - перемещения объекта можно легко закодить. А так Вы реально велосипед изобретаете - как мыть пол зубной щеткой - можно, конечно, но очень долго и неудобно.
0
|
4 / 4 / 0
Регистрация: 10.03.2010
Сообщений: 44
|
|
14.11.2012, 12:05 [ТС] | 10 |
Хорошо, надо взглянуть на SurfaceView. Спасибо за советы.
0
|
Mobile Developer
238 / 234 / 18
Регистрация: 10.05.2009
Сообщений: 917
|
|
16.11.2012, 00:35 | 11 |
Это уже не 2д графика вообщето))) - это просто клепание обьектов и наращевание слоев.... интересно будет провести тест на производительность обоих вариантов)))
0
|
16.11.2012, 00:35 | |
16.11.2012, 00:35 | |
Помогаю со студенческими работами здесь
11
Добавление View (кнопки) в PreferenceScreen Программное добавление View элементов в Fragment Добавление View в FrameLayout: ошибка в приложении На какой тип Layout добавление View идёт быстрее Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |