Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Nullik
44 / 13 / 4
Регистрация: 13.03.2013
Сообщений: 302
Завершенные тесты: 2
1

Изменение размера W и H в layout

03.12.2015, 17:14. Просмотров 921. Ответов 3
Метки нет (Все метки)

Добрый вечер!
Возник вот какой вопрос.
Создаём элементы:

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="844px"
    android:layout_height="1061px"
    android:background="#77acff"
    tools:context=".MainActivity"
    android:id="@+id/rl"
>
 
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/img"
        android:background="#ff9b47"
        android:src="@drawable/n39" />
 
</RelativeLayout>
Исходный размер изображения - 844 х 1061 рх.
Проблема заключается в том, что не понятно как выставлять размер RelativeLayout (точнее изменять размеры), чтобы на любых экранах картинка смотрелась одинакового.
Дело вот в чём: сделали мы подгонку под xhdpi, где density = 2, отлично. т.е. 1688 х 2122 рх вышел у RelativeLayout, но как изменять для других экранов? (ldpi, mdpi, hdpi).
Просто для экономии места хотелось бы не делать 4хN картинок, потому что картинок будет очень много для каждого экрана.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2015, 17:14
Ответы с готовыми решениями:

Layout изменение высоты
Здрасте) У меня есть два layout'а, один под другим. На нижнем есть кнопка. Как...

Изменение названия layout активити
app-debug apk .Устанавливаю на телефон и в нём написано hello и есть...

Изменение цвета при клике по layout
Мне нужно было чтобы при клике по лэйауту у меня менялся его цвет,а потом все...

Изменение background layout 'а сторонней Activity
При нажатии на кнопку должен меняться background некоторых layout'ов, которые...

Изменение позиции одного layout внутри другого
как изменить позицию одного layout внутри другого ? у меня внутри FrameLayout...

3
Pablito
2722 / 2165 / 735
Регистрация: 12.05.2014
Сообщений: 7,572
Завершенные тесты: 1
03.12.2015, 17:17 2
Лучший ответ Сообщение было отмечено Nullik как решение

Решение

потому что размеры НАДО ЗАДАВАТЬ В DP
надо баннер на форуме повесить с этим сообщением
1
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
03.12.2015, 17:38 3
все равно в результате придете к разным картинкам под разное разрешение.
просто разница между 3.2 и 10.1 ну очень большая.
0
Nullik
44 / 13 / 4
Регистрация: 13.03.2013
Сообщений: 302
Завершенные тесты: 2
03.12.2015, 17:48  [ТС] 4
Мне чисто в целях экономии времени и ресурсов (можно сказать и памяти, ну да ладно).

Первому сообщению спасибо - сразу прям дошло что к чему. Вопрос даже вдруг оказался в том - как привязать разные пиксели к dp ?

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="844dp"
    android:layout_height="1061dp"
    android:background="#77acff"
    tools:context=".MainActivity"
    android:id="@+id/rl"
>
 
    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/img"
        android:background="#ff9b47"
        android:src="@drawable/n39" />
 
</RelativeLayout>
Проблема была ещё вот в чём: я использую программный скрол, где есть типа размеры картинки и я думала. что нужно программно до setContentView изменить layout и дальше там как по маслу.
А вышло даже вот как:

После установки layout я измеряю density:

Java
1
final float appDensity = (float)(this.getApplicationContext().getResources().getDisplayMetrics().density);
А затем меняю размеры картинки для программного скролла:

Java
1
2
bitmapWidth = (int)(bitmapWidth * appDensity);
        bitmapHeight = (int)(bitmapHeight * appDensity);
Просто мне не совсем понятно, как 844px == 844dp для, например, xhdpi, где у них коэф density = 2.
Но применив все те манипуляции с разрешениями и измерениями всё работает как надо на всех устройствах.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2015, 17:48

Анимированный дизайн смены Layout или просто выдвигаемый layout
Ну, думаю тут и так всё понятно. Я просто не знаю, какие ключевые слова вводить...

At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Нужен совет бывалых. У меня есть активити которое запускается с мейн активити,...

Не хочет работать в layout, но включается в layout-land
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так :...


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

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

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