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

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

Войти
Регистрация
Восстановить пароль
 
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
#1

Существует ли способ создать(нарисовать) несколько своих слоёв? - Программирование Android

03.11.2015, 16:41. Просмотров 228. Ответов 15
Метки нет (Все метки)

Всем привет! Пытаюсь разобраться в рисовке графики (новичок)! Подскажите, пожалуйста, каким образом можно сделать "наслаивание" View друг на друга при создании Activity? Заранее спасибо!
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,648
Завершенные тесты: 1
03.11.2015, 16:43     Существует ли способ создать(нарисовать) несколько своих слоёв? #2
ВлаDDD, складывать их в подходящие для этого контейнеры, например, FrameLayout или RelativeLayout.
Alex Ziko
2 / 2 / 1
Регистрация: 27.07.2015
Сообщений: 32
03.11.2015, 16:45     Существует ли способ создать(нарисовать) несколько своих слоёв? #3
Самый простой случай - использовать Layer List http://developer.android.com/intl/ru...html#LayerList
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 16:52  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #4
Спасибо за ответ . Дело в том, что на данный момент я пытаюсь сделать это следующим образом.

Java
1
2
3
4
5
6
7
8
9
10
11
12
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        a1_View = new a1_View(this);
        setContentView(a1_View);
        a1_View.requestFocus();
 
        a2_View = new a2_View(this);
        setContentView(a2_View);
 
        addContentView(a2_View); // не работает, т.к. a2_View не стандартный View, как я понял
В таком случае рисуется только последний(что ЛОГИЧНО из-за setContentView). К сожалению, я не нашёл способа, именно, добавлять View один за другим в коде.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
03.11.2015, 16:53     Существует ли способ создать(нарисовать) несколько своих слоёв? #5
что по твоему делает setContentView ?
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 16:55  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #6
Alex Ziko, Спасибо за ссылку, сейчас обязательно посмотрю

Добавлено через 1 минуту
Паблито, по-моему меняет содержимое экрана на указанное в параметре
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
03.11.2015, 16:57     Существует ли способ создать(нарисовать) несколько своих слоёв? #7
а что будет если вызывать его три раза с разными view каждый раз ?
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:00  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #8
Паблито, Экран будет отображать то содержимое, которое будет указано в последнем setContentView. Я прекрасно понимаю, что это неправильно. Поэтому и хочу узнать правильный способ.
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
03.11.2015, 17:01     Существует ли способ создать(нарисовать) несколько своих слоёв? #9
воот
теперь следующий вопрос - надо именно программно добавлять эти view ?
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:03  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #10
Паблито, Да, мне бы хотелось, чтобы после создания объекта View, я мог наложить его, как слой, например, на другой объект View. Но если есть более правильный способ, пожалуйста, подскажите, как всё-таки лучше)
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
03.11.2015, 17:11     Существует ли способ создать(нарисовать) несколько своих слоёв? #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
проще всего (имхо) сделать файл разметки, например main.xml
и вставить туда примерно такой код
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
 
    <View
        android:id="@+id/redView"
        android:layout_marginLeft="50dp"
        android:layout_marginTop="50dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#FAA" />
 
    <View
        android:id="@+id/greenView"
        android:layout_marginLeft="70dp"
        android:layout_marginTop="70dp"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#AFA" />
 
</FrameLayout>
а в onCreate() написать один раз
setContentView(R.layout.main);
дальше к этим вьюшкам можно доступаться по id, но это другая история
нижняя (greenView) будет "над" красной в типа слоях
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:22  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #12
Паблито, Спасибо, я хочу последовать вашему совету. Однако, мои View создаются программно, т.е., скорее всего, не получится создать их в файле разметки изначально. Или существует какой-то способ соотнести их(мои View) с View в файле разметки?
Pablito
2455 / 1900 / 591
Регистрация: 12.05.2014
Сообщений: 6,702
Завершенные тесты: 1
03.11.2015, 17:41     Существует ли способ создать(нарисовать) несколько своих слоёв? #13
а в чем прикол создавать все программно?
просто в 3/4 случаев выясняется что чел просто не пробовал делать все с помощью xml
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:46  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #14
Паблито, нууу...надо двумерный массив нарисовать. Через xml, действительно, не пробовал, потому что даже мыслей нет никаких поэтому поводу.
Pablito
03.11.2015, 17:51
  #15

Не по теме:

тогда сейчас самое время появиться парням, которые всем подряд дают ссылку на уроки по андроиду на русском языке

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2015, 18:15     Существует ли способ создать(нарисовать) несколько своих слоёв?
Еще ссылки по теме:
Android Использование известных образов в своих приложениях
Способ перехода к другому Activity через перемещение пальцем Android
Самый простой способ отрисовать круг разными цветами Android
Android Какой способ предпочтительнее для реализации повторяющейся функции
Android Кто как проверяет наличие интернета в своих приложениях

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

Или воспользуйтесь поиском по форуму:
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 18:15  [ТС]     Существует ли способ создать(нарисовать) несколько своих слоёв? #16
Паблито, Немного поразмыслив над вашим предложением, нашел ответ на свой вопрос) Спасибо!

Java
1
2
3
4
5
6
7
8
9
10
       
 
        framesContainer = new FrameLayout(this);
 
        a1_View = new a1_View(this);
        a2_View = new a2_View(this);
        framesContainer.addView(a1_View);
        framesContainer.addView(a2_View);
 
        setContentView(framesContainer);
Yandex
Объявления
03.11.2015, 18:15     Существует ли способ создать(нарисовать) несколько своих слоёв?
Ответ Создать тему
Опции темы

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