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

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

Войти
Регистрация
Восстановить пароль
 
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
#1

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

03.12.2015, 17:14. Просмотров 185. Ответов 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 картинок, потому что картинок будет очень много для каждого экрана.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2015, 17:14     Изменение размера W и H в layout
Посмотрите здесь:

Изменение размера изображения Android
Android Изменение размера изображения (байты)
Layout изменение высоты Android
Изменение размера шрифта в стиле программно Android
Android Изменение размера картинок в зависимости от разрешения экрана
Android Изменение background layout 'а сторонней Activity
Android Изменение размера Activity
Изменение цвета при клике по layout Android
Не хочет работать в layout, но включается в layout-land Android
Android At android.widget.LinearLayout.setChildFrame Layout в Layout-те
Изменение layout-элементов одного activity из другого activity Android
автоматическое изменение размера шрифта Android

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Паблито
хочу на покой
1959 / 1701 / 528
Регистрация: 12.05.2014
Сообщений: 6,066
Завершенные тесты: 1
03.12.2015, 17:17     Изменение размера W и H в layout #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
потому что размеры НАДО ЗАДАВАТЬ В DP
надо баннер на форуме повесить с этим сообщением
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
03.12.2015, 17:38     Изменение размера W и H в layout #3
все равно в результате придете к разным картинкам под разное разрешение.
просто разница между 3.2 и 10.1 ну очень большая.
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
03.12.2015, 17:48  [ТС]     Изменение размера W и H в layout #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.
Но применив все те манипуляции с разрешениями и измерениями всё работает как надо на всех устройствах.
Yandex
Объявления
03.12.2015, 17:48     Изменение размера W и H в layout
Ответ Создать тему
Опции темы

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