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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.58
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
#1

RelativeLayout + Button - Android

23.01.2013, 22:25. Просмотров 1549. Ответов 10
Метки нет (Все метки)

Народ как лучше делать разметку в xml
Есть RelativeLayout (с картинкой в background) и на нем надо расположить Button, в определенном месте
Получается что кнопка является частью картинки, и она нажимается (то есть она должна идеально подходить и располагаться)

Можно сделать вот так
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<RelativeLayout 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/les" >
 
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="100dp"
        android:layout_marginTop="150dp"
        android:background="@drawable/derevo"
        android:onClick="pressButton"
   />
</RelativeLayout>
Но это работает для одного разрешения
Если смотреть на другом разрешении, кнопка съезжает на определенное расстояние

+ вопрос как поступать если у телефонов разное соотношение сторон, к тому же

Заранее спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
25.01.2013, 10:37     RelativeLayout + Button #2
всё равно вы не сможете кастомизировать под все скрины идеально если вам конечно нада точность пиксель в пиксель. есть всякие sw параметры но мне кажется совсем точно вам не удасться сделать.

Цитата Сообщение от flashok Посмотреть сообщение
RelativeLayout (с картинкой в background)
может по памяти давольно много выжирать ... опастно это всё ... слыхали про windowBackground в андройде сколько жрёт?
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
25.01.2013, 23:19  [ТС]     RelativeLayout + Button #3
Спасибо за ответ

После серча по интрнету есть у меня есть два пути
1. Делать под каждое разрешение отдельный layout папку с набром xml под это разрешение
такой подход я увидел вот тут http://stackoverflow.com/questions/8...ltiple-screens
(третий ответ)
Так можно покрыть все разрешения и сделать идеально чтоб отображалось на всех телефонах
но есть минусы
- я не знаю как проверить на симе разрешение которых нет, к примеру 2560x1600
- это очень муторно, так разрешений не два и не три а больше 10

2.В принципе он похож на первый, но все это делать через код
то есть задавать позицию батона через код, зная разрешение экрана
Но опять же как на симе проверить разрешения которых нет, к примеру 2560X1600

Мне интресно как это обходиться в играх, с той же спрайтовой анимацией
Можно кто еще имеет опыт, буду рад советам


p.s. использование sw это немного не то
p.s. в догонку нашел нечайно руский перевод статьи про андройд может кому поможет
http://anddev.ru/58/podderzhka-razli...een-sizes.html
p.s. память пока не главное, пока я не могу двинуться дальше размещения элементов

Добавлено через 10 часов 36 минут
продолжаю пока разговаривать сам с собой может кому пригодиться
нашел я вот такой ответ, про кол-во layout
http://stackoverflow.com/questions/5...ndroid-devices
Походу придется делать большое количество layout для каждого разрешения
kvaka
 Аватар для kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
26.01.2013, 14:31     RelativeLayout + Button #4
Можно использовать LinearLayout и его параметр weight. С его помощью можно сделать чтоб на всех экранах элементы пропорционально занимали одинаково места.
Если же нужно чтоб просто в центре RelativeLayout'а кнопка была - укажи для нее centerInParent = "true"
KarmaMaker
 Аватар для KarmaMaker
91 / 90 / 2
Регистрация: 09.12.2011
Сообщений: 233
26.01.2013, 17:36     RelativeLayout + Button #5
Я правильно понимаю, что ты собираешься скейлить картинку ? Если да, решается твоя задача довольно просто: cоздаешь кастомный лэйаут (Это воистину не сложно), добавляешь в него кнопку с тем чтобы в onMeasure этого лэйаута задать ей размер (layoutWidth * k1, layoutHeight * k2) а затем в onLayout сдвинуть ее в нужное место, that's it.
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
27.01.2013, 20:53  [ТС]     RelativeLayout + Button #6
Спасибо за ответы, но это не ответ на вопрос
Склеивать мне ни чего не надо

У меня есть картинка и есть кнопка, мне надо так задать положение кнопки, чтоб она сливалась с картинкой (была частью картинки) пиксель в пиксель, на всех разрешениях. Через dp и один layout у меня не получается

+ вопрос созрел, куда ложить картинки c разрешением 2560X1600 (в какой drawable)
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
27.01.2013, 21:19     RelativeLayout + Button #7
Цитата Сообщение от flashok Посмотреть сообщение
Мне интресно как это обходиться в играх
в играх все сами рисуют на сюрфейсе просчитывая размеры/пропорции в пикселях.
KarmaMaker
 Аватар для KarmaMaker
91 / 90 / 2
Регистрация: 09.12.2011
Сообщений: 233
28.01.2013, 23:13     RelativeLayout + Button #8
Склеивать мне ни чего не надо

У меня есть картинка и есть кнопка, мне надо так задать положение кнопки, чтоб она сливалась с картинкой (была частью картинки) пиксель в пиксель, на всех разрешениях. Через dp и один layout у меня не получается
Ради пресвятого Иеговы, перечитай пожалуйста мое сообщение, - судя по всему кастомный лэйаут, суть то, что тебе нужно.

куда ложить картинки c разрешением 2560X1600
Не надо ложить, никуда, ни при каких обстаятельствах, ибо дроиде падать будет с OutOfMemory !1111!!! (Когда оно будет отрисовываться, отожрется примерно 20 - 30 мб памяти что при небольшом 16 - 128 мб объеме выделенном для всего приложения, выглядит удручающе.)
V0v1k
1157 / 981 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.01.2013, 23:26     RelativeLayout + Button #9
128? это на каком девайсе так много?
KarmaMaker
 Аватар для KarmaMaker
91 / 90 / 2
Регистрация: 09.12.2011
Сообщений: 233
28.01.2013, 23:32     RelativeLayout + Button #10
Nexus 10, Коль ничего не путаю.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.01.2013, 11:32     RelativeLayout + Button
Еще ссылки по теме:

Android Задать программно leftMargin для RelativeLayout
Android Как сделать RelativeLayout поверх другого?
Использование layout_toStartOf и layout_toEndOf в RelativeLayout Android
RelativeLayout и Bitmap Android
Изображение с камеры вывести на RelativeLayout Android

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

Или воспользуйтесь поиском по форуму:
flashok
 Аватар для flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
29.01.2013, 11:32  [ТС]     RelativeLayout + Button #11
если девайс поддерживает разрешение, то значит должно работать
что за бред что будет тормозить
Yandex
Объявления
29.01.2013, 11:32     RelativeLayout + Button
Ответ Создать тему
Опции темы

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