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

Как автоматически изменять размер текста в spinner в зависимости от размера экрана? - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Вылетает при создании потока http://www.cyberforum.ru/android-dev/thread1662749.html
При выключенном Bluetooth, запуская приложение у меня включается блютуз, но выдаёт ошибку создания потока: 02-15 13:31:26.111 30855-31205/com.alexru18.bluetoothchat E/AndroidRuntime: FATAL...
Программирование Android Какой язык и среду выбрать для разработки на Android? Всем привет. Решил тут попробовать по разрабатывать под Android. В интернете много статей по разработке на андроид, но хотелось бы актуализировать информацию. Интересуют следующие вопросы: 1)... http://www.cyberforum.ru/android-dev/thread1662741.html
Программирование Android как открыть картинку (и по возможности большого размера 10000х12000)
Всем привет! уже перепробовал множество вариантов : пробовал в имадж_вью но остановился на вэб_вью. где-то в коде чего-то не указал и при этом появляется "веб страница не доступна или отключена. "...
Программирование Android Создание своего дизайна Android
Вопрос примитивен, но для меня важен. Сейчас нужно сделать уникальный интересный интерфейс для приложения. Но я не знаю с чего начать. Подскажите пожалуйста: что нужно подучить (имею ввиду,...
Программирование Android Цикл: обход массива json http://www.cyberforum.ru/android-dev/thread1662342.html
Стыдно такое писать, но все же помогите составить цикл. Суть в том, что бы он проходился по массиву json и передавал id title и т.д. Написал как предлагал, но естественно не правильно) public void...
Программирование Android не могу разобраться . java . игровой движок. игры В общем цель была писать игры на андроид. выбрал и решил пользоваться андроид студио . понял , что одного знания алгоритмов и принципов программирования не достаточно и пошел учить java и опп. ну... подробнее

Показать сообщение отдельно
VV0lk
11 / 1 / 0
Регистрация: 25.12.2011
Сообщений: 171

Как автоматически изменять размер текста в spinner в зависимости от размера экрана? - Программирование Android

15.02.2016, 13:45. Просмотров 929. Ответов 16
Метки (Все метки)

Здравствуйте. В программе использую две темы светлую и темную:
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<style name="BlackTheme"  parent="android:style/Theme.Holo">
    <item name="android:colorBackground">@color/Black</item>
    <item name= "android:spinnerStyle">@style/spinner_style_black</item>
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem_Black</item>
    <item name="Direct_Theme_color">@color/ActionBar_Dark</item>
    <item name="Inverse_Theme_color">@color/White</item>
    <item name="Grid_Graph_Theme_color">@color/Grid_Color_for_Black</item>
</style>
 
 
 
<style name="WhiteTheme"  parent="android:style/Theme.Holo.Light" >
    <item name="android:colorBackground">@color/White</item>
    <item name= "android:spinnerStyle">@style/spinner_style_white</item>
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerDropDownItem_White</item>
    <item name="Direct_Theme_color">@color/ActionBar_Light</item>
    <item name="Inverse_Theme_color">@color/Black</item>
    <item name="Grid_Graph_Theme_color">@color/Grid_Color_for_White</item>
</style>

В них определены стили спиннера:
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<style name="spinner_style_black" parent="@android:style/Widget.Spinner">
    <item name="android:background">@drawable/gradient_spinner_black</item>
    <item name="android:layout_marginLeft">5dp</item>
    <item name="android:layout_marginRight">5dp</item>
    <item name="android:layout_marginBottom">5dp</item>
    <item name="android:paddingLeft">6dp</item>
    <item name="android:paddingTop">4dp</item>
    <item name="android:paddingBottom">4dp</item>
    <item name="android:popupBackground">#2A5FB1</item> 
</style>
 
<style name="spinner_style_white" parent="@android:style/Widget.Spinner">
    <item name="android:background">@drawable/gradient_spinner_white</item>
    <item name="android:layout_marginLeft">5dp</item>
    <item name="android:layout_marginRight">5dp</item>
    <item name="android:layout_marginBottom">5dp</item>
    <item name="android:paddingLeft">6dp</item>
    <item name="android:paddingTop">4dp</item>
    <item name="android:paddingBottom">4dp</item>
    <item name="android:popupBackground">#2A5FB1</item> 
</style>
 
<style name="SpinnerDropDownItem_Black" parent="@android:style/Widget.DropDownItem.Spinner">
    <item name="android:background">#ff2A5FB1</item>
    <item name="android:textColor">#ffffffff</item>
   <item name="android:checkMark">@drawable/edited_radio</item>
</style>
 
<style name="SpinnerDropDownItem_White" parent="@android:style/Widget.DropDownItem.Spinner">
    <item name="android:background">#ff2A5FB1</item>
    <item name="android:textColor">#ff000000</item>
    <item name="android:checkMark">@drawable/edited_radio</item>
</style>

Ну и сам спиннер, например, с загруженным из ресурсов контентом:
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
 <Spinner
                p1:layout_width="0dp"
                p1:layout_weight="0.3"
                p1:layout_height="match_parent"
                p1:id="@+id/spinner2"
                p1:entries="@array/SDR_str_arr"
                p1:layout_marginLeft="3dp"
                p1:layout_marginTop="4dp"
                p1:layout_marginRight="210dp"
                p1:layout_marginBottom="6dp" />


Размер шрифта в спиннере использовался стандартный, по умолчанию. Сейчас адаптируя разметку под размеры -large и -extra-large понял, что необходимо менять размер шрифта spinner (да и не только) в зависимости от размера экрана текущего девайса. Ну например так для обычного размера - textSize у всех спиннеров должен быть равен 18dp, для -large = 30dp, для -extra-large = 50dp. Как это сделать автоматически в разметке/стиле или как то в одном месте в коде? Как то может быть через атрибуты. Подскажите пожалуйста, а то всю голову уже сломал! Я думаю с аналогичной проблемой разработчики сталкиваются часто и должно быть какое то красивое решение.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru