Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
1

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

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

Всем привет! Пытаюсь разобраться в рисовке графики (новичок)! Подскажите, пожалуйста, каким образом можно сделать "наслаивание" View друг на друга при создании Activity? Заранее спасибо!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2015, 16:41
Ответы с готовыми решениями:

Существует ли способ создать файл ресурсов без использования brcc32.exe?
Существует ли способ создать файл ресурсов без использования brcc32.exe?

Покраска деталей в несколько слоёв
Здравствуйте! Взял из одной игрушки для своего проекта. Есть 3D модель,...

Рисовать в несколько слоёв на окно, mfc
Есть два потока. Первый с частотой 10-40 раз в секунду через StretchBlt рисует...

Существует ли компактный способ десериализации
Господа, прокомментируйте, пжст, вот какой момент. В коде один из...

Существует способ перевести из RGBA в RGB
Здравствуйте. Столкнулся с проблемой. Мне нужно работать с прозрачностью....

15
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
03.11.2015, 16:43 2
ВлаDDD, складывать их в подходящие для этого контейнеры, например, FrameLayout или RelativeLayout.
0
Alex Ziko
2 / 2 / 1
Регистрация: 27.07.2015
Сообщений: 33
03.11.2015, 16:45 3
Самый простой случай - использовать Layer List http://developer.android.com/intl/ru...html#LayerList
0
Вла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 один за другим в коде.
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,583
Завершенные тесты: 1
03.11.2015, 16:53 5
что по твоему делает setContentView ?
0
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 16:55  [ТС] 6
Alex Ziko, Спасибо за ссылку, сейчас обязательно посмотрю

Добавлено через 1 минуту
Паблито, по-моему меняет содержимое экрана на указанное в параметре
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,583
Завершенные тесты: 1
03.11.2015, 16:57 7
а что будет если вызывать его три раза с разными view каждый раз ?
0
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:00  [ТС] 8
Паблито, Экран будет отображать то содержимое, которое будет указано в последнем setContentView. Я прекрасно понимаю, что это неправильно. Поэтому и хочу узнать правильный способ.
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,583
Завершенные тесты: 1
03.11.2015, 17:01 9
воот
теперь следующий вопрос - надо именно программно добавлять эти view ?
0
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:03  [ТС] 10
Паблито, Да, мне бы хотелось, чтобы после создания объекта View, я мог наложить его, как слой, например, на другой объект View. Но если есть более правильный способ, пожалуйста, подскажите, как всё-таки лучше)
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,583
Завершенные тесты: 1
03.11.2015, 17:11 11
Лучший ответ Сообщение было отмечено ВлаDDD как решение

Решение

проще всего (имхо) сделать файл разметки, например 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) будет "над" красной в типа слоях
1
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:22  [ТС] 12
Паблито, Спасибо, я хочу последовать вашему совету. Однако, мои View создаются программно, т.е., скорее всего, не получится создать их в файле разметки изначально. Или существует какой-то способ соотнести их(мои View) с View в файле разметки?
0
Pablito
2731 / 2166 / 735
Регистрация: 12.05.2014
Сообщений: 7,583
Завершенные тесты: 1
03.11.2015, 17:41 13
а в чем прикол создавать все программно?
просто в 3/4 случаев выясняется что чел просто не пробовал делать все с помощью xml
0
ВлаDDD
4 / 4 / 0
Регистрация: 07.06.2013
Сообщений: 39
03.11.2015, 17:46  [ТС] 14
Паблито, нууу...надо двумерный массив нарисовать. Через xml, действительно, не пробовал, потому что даже мыслей нет никаких поэтому поводу.
0
Pablito
03.11.2015, 17:51
  #15

Не по теме:

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

0
Вла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);
0
03.11.2015, 18:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2015, 18:15

Существует ли способ открыть общий доступ к папке?
Доброго всем, уважаемые. Вопрос в теме, существует ли способ открыть общий...

Существует ли еще простой способ ввести два числа
через пробел, кроме этого? Scanner i = new Scanner(System.in); ...

Существует способ сделать заготовки для экземпляра класса?
Добрый вечер ) Собственно, вопрос в теме: есть ли способ создать пресеты для...


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

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

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