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

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

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

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

03.12.2015, 17:14. Просмотров 244. Ответов 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):

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

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

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

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

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

Не хочет работать в layout, но включается в layout-land - Программирование Android
доброе утро ! пишу первое приложение. обычный мейн.хмель выглядит вот так : &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Pablito
2474 / 1919 / 596
Регистрация: 12.05.2014
Сообщений: 6,747
Завершенные тесты: 1
03.12.2015, 17:17 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
потому что размеры НАДО ЗАДАВАТЬ В DP
надо баннер на форуме повесить с этим сообщением
bastrakov
91 / 91 / 14
Регистрация: 10.10.2015
Сообщений: 307
Записей в блоге: 1
03.12.2015, 17:38 #3
все равно в результате придете к разным картинкам под разное разрешение.
просто разница между 3.2 и 10.1 ну очень большая.
Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 300
Завершенные тесты: 1
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.
Но применив все те манипуляции с разрешениями и измерениями всё работает как надо на всех устройствах.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2015, 17:48
Привет! Вот еще темы с ответами:

Изменение layout-элементов одного activity из другого activity - Программирование Android
Здравствуйте! Я хочу изменить размер или цвет текста TextView в одном activity из второго activity, каким образом мне можно это...

Изменение размера изображения - Программирование Android
Здравствуйте! Интересует возможность изменения выводимого на экран изображения в Android. Требуется хак для определенного устройства....

Изменение размера Activity - Программирование Android
как изменить размер активити по умолчанию его размер устанавливается во весь экран как уменьшить длину и ширину активити?как вызвать...

Изменение размера изображения (байты) - Программирование Android
Здравствуйте. Возник вопрос о том, как можно сжать полученное от камеры фото. В смысле не по ширине/высоте, а по &quot;массе&quot; так сказать. То...


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

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

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