Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/14: Рейтинг темы: голосов - 14, средняя оценка - 4.71
 Аватар для flashok
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311

RelativeLayout + Button

23.01.2013, 22:25. Показов 3176. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.01.2013, 22:25
Ответы с готовыми решениями:

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

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

Изменяющаяся ширина RelativeLayout
Здравствуйте, подскажите пожалуйста, вот слева есть RelativeLayout с фиксированной шириной 130 dp, а в правой части расположены кнопки....

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

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

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

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

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


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

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

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

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

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

куда ложить картинки c разрешением 2560X1600
Не надо ложить, никуда, ни при каких обстаятельствах, ибо дроиде падать будет с OutOfMemory !1111!!! (Когда оно будет отрисовываться, отожрется примерно 20 - 30 мб памяти что при небольшом 16 - 128 мб объеме выделенном для всего приложения, выглядит удручающе.)
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
28.01.2013, 23:26
128? это на каком девайсе так много?
0
 Аватар для KarmaMaker
91 / 90 / 11
Регистрация: 09.12.2011
Сообщений: 233
28.01.2013, 23:32
Nexus 10, Коль ничего не путаю.
0
 Аватар для flashok
97 / 96 / 4
Регистрация: 14.02.2009
Сообщений: 311
29.01.2013, 11:32  [ТС]
если девайс поддерживает разрешение, то значит должно работать
что за бред что будет тормозить
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2013, 11:32
Помогаю со студенческими работами здесь

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

Прокручиваемый список RelativeLayout
Ребят, помогите пожалуйста сделать прокручиваемый список. Имею: &lt;RelativeLayout...

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

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

Создание картинки в RelativeLayout динамически?
Вопрос по Android Studio! На главной странице у меня RelativeLayout. При запуске приложения нужно динамически создать картинку (ImageView)...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru