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

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

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

RelativeLayout + Button - Программирование Android

23.01.2013, 22:25. Просмотров 1624. Ответов 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>
Но это работает для одного разрешения
Если смотреть на другом разрешении, кнопка съезжает на определенное расстояние

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

Заранее спасибо
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2013, 22:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос RelativeLayout + Button (Программирование Android):

RelativeLayout и Bitmap - Программирование Android
Можно ли поставить на задний фон RelativeLayout Bitmap. Или преобразовать Bitmap в Drawable? P.S. Именно Bitmap, а не BitmapDrawable/

LinearLayout vs RelativeLayout - Программирование Android
этот LinearLayout вообщевозможно переделать на RelativeLayout??? &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout ...

RelativeLayout расположение объектов - Программирование Android
Вопрос: как с помощью relativeLayout программно задать отступ от краев родителя, то есть задать, например это:...

Использование layout_toStartOf и layout_toEndOf в RelativeLayout - Программирование Android
Здравствуйте. Решил познакомиться с RelativeLayout и собственно заинтересовали параметры layout_toStartOf и layout_toEndOf. Чем они...

Программное создание LinearLayout в RelativeLayout - Программирование Android
Фрагмент кода с ошибкой: rellayout = new RelativeLayout(this); trow.addView(rellayout); linlayin = new LinearLayout(this); ...

RelativeLayout findViewById return null - Программирование Android
Я что-то не пойму никак.. почему RelativeLayout возвращает не ссылку на TextView, а null? @Override public Dialog...

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

Цитата Сообщение от flashok Посмотреть сообщение
RelativeLayout (с картинкой в background)
может по памяти давольно много выжирать ... опастно это всё ... слыхали про windowBackground в андройде сколько жрёт?
1
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
25.01.2013, 23:19  [ТС] #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 для каждого разрешения
0
kvaka
29 / 29 / 3
Регистрация: 26.06.2012
Сообщений: 163
26.01.2013, 14:31 #4
Можно использовать LinearLayout и его параметр weight. С его помощью можно сделать чтоб на всех экранах элементы пропорционально занимали одинаково места.
Если же нужно чтоб просто в центре RelativeLayout'а кнопка была - укажи для нее centerInParent = "true"
0
KarmaMaker
91 / 90 / 2
Регистрация: 09.12.2011
Сообщений: 233
26.01.2013, 17:36 #5
Я правильно понимаю, что ты собираешься скейлить картинку ? Если да, решается твоя задача довольно просто: cоздаешь кастомный лэйаут (Это воистину не сложно), добавляешь в него кнопку с тем чтобы в onMeasure этого лэйаута задать ей размер (layoutWidth * k1, layoutHeight * k2) а затем в onLayout сдвинуть ее в нужное место, that's it.
0
flashok
86 / 88 / 1
Регистрация: 14.02.2009
Сообщений: 293
27.01.2013, 20:53  [ТС] #6
Спасибо за ответы, но это не ответ на вопрос
Склеивать мне ни чего не надо

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

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

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

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

Изображение с камеры вывести на RelativeLayout - Программирование Android
Есть RelativeLayout на нем нет ничего (в дальнейшем будет несколько кнопок и imageView как можно стелать чтобы избражение с камеры...

Ошибка: RelativeLayout cannot be resolved or is not a field - Программирование Android
Всем привет. Пишу небольшое приложение, и все время перед запуском появляется вот такая ошибка &quot;RelativeLayout cannot be resolved or is not...

RelativeLayout расположение и связь объектов - Программирование Android
Всем привет! Только начинаю осваивать Андроид, решил поэксперементировать с RelativeLayout и столкнулся с проблемой. Как связать более 4х...

Задать программно leftMargin для RelativeLayout - Программирование Android
Имеется заготовка view: &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.01.2013, 11:32
Ответ Создать тему
Опции темы

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