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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.74
TanaTiX
Модератор
2738 / 1583 / 144
Регистрация: 19.02.2011
Сообщений: 5,695
#1

Вопросы по настройке интерфейса - Android

11.08.2011, 22:58. Просмотров 2353. Ответов 9
Метки нет (Все метки)

Почему конструкция типа
Java
1
textTitle.setBackgroundColor(Color.rgb(100,100,100));
обрабатывается корректно, а
Java
1
textTitle.setBackgroundColor(R.color.myColor);
нет?

Выставляю настройки выравнивания
Java
1
textTitle.setGravity(0x01);
Можно ли поставить вместо 0x01 что-то более внятное? Как сделать чтоб созданное текстовое поле не занимало все пространство приложения?

Продолжение следует...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
petruchodd
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
12.08.2011, 11:40     Вопросы по настройке интерфейса #2
Цитата Сообщение от TanaTiX Посмотреть сообщение
Почему конструкция типа
Java
1
textTitle.setBackgroundColor(Color.rgb(100,100,100));
обрабатывается корректно, а
Java
1
textTitle.setBackgroundColor(R.color.myColor);
нет?
Потому что R.color.myColor это уже ресурс, а не цвет. Поэтому выполнять эту команду нужно так :
Java
1
textTitle.setBackgroundResource(R.color.myColor);
Выставляю настройки выравнивания
Java
1
textTitle.setGravity(0x01);
Можно ли поставить вместо 0x01 что-то более внятное?

в скобках пишеш :
Java
1
textTitle.setGravity(Gravity.LEFT)
// например по левому краю. после точки есть выбор.
Как сделать чтоб созданное текстовое поле не занимало все пространство приложения?

Продолжение следует...
Выставлять ему ширину меньше(в ручную), либо ставить WRAP_CONTENT, у тебя скорей всего стоит FILL_PARRENT поэтому оно и занимает всё пространство.

Если вообще не трогать высоту и ширину, по дефолту будет использоваться wrap_content для высоты и ширины.



Не по теме:

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

TanaTiX
Модератор
2738 / 1583 / 144
Регистрация: 19.02.2011
Сообщений: 5,695
13.08.2011, 01:46  [ТС]     Вопросы по настройке интерфейса #3
Цитата Сообщение от petruchodd Посмотреть сообщение
setBackgroundResource
А для цвета текста к примеру такое уже не подойдет? А то пересмотрел свойства, перепробовал похожие по смыслу - ничего похожего не нашел. Как тогда определить в каком случае что использовать?
Выставлять ему ширину меньше(в ручную), либо ставить WRAP_CONTENT, у тебя скорей всего стоит FILL_PARRENT поэтому оно и занимает всё пространство.
Аналогично: не могу понять что откуда брать. Перерыл весь НЕТ - результата ёк
petruchodd
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
13.08.2011, 02:42     Вопросы по настройке интерфейса #4
Попробую помочь аж в понедельник, сейчас как бы на выходные на отдых сваливаю . Вот за второй вариант( про то что у тебя всю площадь занимает) выложи проект . Если он не такой серьезный для тебя) я попытаюсь обьяснить тебе почему на всю ширину или высоту. ( проект всмысле полностью папочку ) Ну а за первое так сразу и не скажу.. но попробуй вот так

Java
1
textView.setTextColor(getResources().getColor(R.color.myColor));

Не по теме:

p.s аа эклипса нету под рукой(((

TanaTiX
Модератор
2738 / 1583 / 144
Регистрация: 19.02.2011
Сообщений: 5,695
14.08.2011, 15:26  [ТС]     Вопросы по настройке интерфейса #5
Цитата Сообщение от petruchodd Посмотреть сообщение
Вот за второй вариант( про то что у тебя всю площадь занимает) выложи проект
Спасибо, сам разобрался. Я не создавал лэйаут, в общем какую-то ерунду делал. Сейчас картинка (в смысле понимания) уже вырисовывается.
Вот рабочий пример.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
cont = new LinearLayout(this);
        cont.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
        cont.setOrientation(LinearLayout.HORIZONTAL);
        setContentView(cont);
textTitle=new TextView(this);
        textTitle.setText("Калькулятор");
        
        textTitle.setGravity(Gravity.CENTER_HORIZONTAL);
        textTitle.setTextColor(Color.rgb(255, 0, 0));
        textTitle.setBackgroundColor(Color.rgb(100,100,100));
        
        
        cont.addView(textTitle);
Отсюда вопрос: чем отличается addView от setContentView? Я так понимаю, что последний метод обозначает базовый контейнер, куда будут бросаться другие визуальный объекты (кстати, у визуальных объектов в Java/Android есть какое-то общее название, от какого класса они все наследуются, какойинтерфейс расширяют?), а addView просто добавляет очередной объект, "не назначая его начальником"?
TanaTiX
Модератор
2738 / 1583 / 144
Регистрация: 19.02.2011
Сообщений: 5,695
21.08.2011, 15:07  [ТС]     Вопросы по настройке интерфейса #6
Я правильно понимаю, что setContentView нужно использовать только для глобального контейнера?

Добавлено через 9 часов 56 минут
Создал с помощью xml в ряд TextEdit, за ним ToggleButton. Последний при этом отображается на несколько пикселей ниже. Если прописать
Java
1
layout_marginTop="-10dp"
то все становится в один ряд. За счет чего такое странное поведение по умолчанию и правильный ли я выбрал фикс?

Добавлено через 9 часов 56 минут
Создал с помощью xml в ряд TextEdit, за ним ToggleButton. Последний при этом отображается на несколько пикселей ниже. Если прописать
Java
1
layout_marginTop="-10dp"
то все становится в один ряд. За счет чего такое странное поведение по умолчанию и правильный ли я выбрал фикс?

Добавлено через 12 часов 39 минут
Как выставить в ряд 3 элемента так, чтоб средний занимал минимальное пространство соответственно контенту (кнопка), а крайние - все оставшееся пространство (EditText)?
Как у ToggleButton убрать полоску подсветки? Хочу чтоб менялся только текст при клике (реализовано).

Добавлено через 22 минуты
Цитата Сообщение от TanaTiX Посмотреть сообщение
Как выставить в ряд 3 элемента так, чтоб средний занимал минимальное пространство соответственно контенту (кнопка), а крайние - все оставшееся пространство (EditText)?
С этим разобрался.
У контейнера ставим
Java
1
android:weightSum="100"
у детей соответственно
Java
1
2
3
android:layout_weight="54"
android:layout_weight="2"
android:layout_weight="54"
т.е. сумма значений layout_weight и weightSum должны быть равны, что от меня по началу и ускользнуло.
Остальные вопросы пока что все еще актуальны.

Upd. правда сейчас обратил внимание, что самый правый элемент немного выходит за границы экрана. Из-за чего это может быть? Как побороть?
Java
1
2
3
4
5
6
<EditText android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:layout_weight="54"
            android:text="cool"
            android:id="@+id/editText2">
            </EditText>
petruchodd
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
24.08.2011, 05:03     Вопросы по настройке интерфейса #7
Цитата Сообщение от TanaTiX Посмотреть сообщение
Я правильно понимаю, что setContentView нужно использовать только для глобального контейнера?
Да что то типа этого. Ты можешь создать много View's но они не будут отображаться, пока ты не прикажешь им. (можна логами чисто смотреть и без контентвью, но для отображения интерфейса, нужно запускать эту функцию)
За тугл или че там ) Андроид не идеальный своих багов хватает ( я зачастую встречаюсь при работе с камерой )
Иногда приходиться делать мини фиксы...
по центру
что бы ширина или высота ровнялась наполненому контенту( к примеру ввел текст в кнопке "ок") то
в значении прописываешь wrap_content,а что бы заполнить на ширину или высоту до конца, насколько это позволяет родитель(parent) прописуй fill_parrent
что то типа такого напримере :
Java
1
2
3
4
5
6
layout.addView(textView,100,LayoutParams.wrap_content); // ширина 100, высота сколько потребуется //для нормального отображения
layout.addView(button,LayoutParams.wrap_content,LayoutParams.wrap_content);//для кнопки высота и ширина сколько потребуется для нормального отображения
layout.addView(textView,LayoutParams.fill_parrent,LayoutParams.wrap_content);//это вью заполняет //остаток позволеного места от layout (если к примеру задал для лайоута ширину 400, то x=400-100 -//button.getWidth();(button к примеру 50)) отсюда ширина этого вью будет 250
 
//получиться что то типа такого  : |---textView=100---||-button-||----------textView=250-------|
//это если выставленно layout.setOrientation(LinearLayout.VERTICAL)  чет типа такого.
Upd. правда сейчас обратил внимание, что самый правый элемент немного выходит за границы экрана. Из-за чего это может быть? Как побороть?
тут не пойму, попробуй убрать с хмл wrap_content (настройка для ширины, поидее она не должна срабатывать так как ты задаешь его сам (54 пример) )
TanaTiX
Модератор
2738 / 1583 / 144
Регистрация: 19.02.2011
Сообщений: 5,695
25.08.2011, 23:16  [ТС]     Вопросы по настройке интерфейса #8
ToggleButton имеет 2 состояния - нажато и отжато. А есть ли подобный объект с бОльшим количеством (необходимо также типа toggle, но это не принципиально)? Как он называется. У меня на мобиле (HTC Desire HD) такие есть в настройках, а название найти не могу.
Как вообще создавать свои собственные кнопки, которые выглядят так, как мне хочется и имеет соответственно такое поведение, которое мне хочется? Как настроить программу, чтоб такие кастомные элементы добавлять через xml? Кстати, использовать xml действительно удобнее и идеологически более правильно (если конечно речь не об одной кнопке, создаваемой посреди работы приложения)

Цитата Сообщение от petruchodd Посмотреть сообщение
тут не пойму, попробуй убрать с хмл wrap_content (настройка для ширины, поидее она не должна срабатывать так как ты задаешь его сам (54 пример) )
экспериментальным путем поставил 2м элементам по 50, а 3-му 0 - стало нормально. Наверное общее значение не должно превышать 100.

Добавлено через 27 минут
Можно ли создавать выпадающие списки исключительно средствами xml, т.е. без кодирования в *.java?
petruchodd
90 / 90 / 8
Регистрация: 23.06.2009
Сообщений: 511
26.08.2011, 11:14     Вопросы по настройке интерфейса #9
Смотри тут тут

Описание в xml и в коде на любителя, кому как нравиться, я предпочитаю создавать всё в коде, так я больше контролирую процесс.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.08.2011, 11:28     Вопросы по настройке интерфейса
Еще ссылки по теме:

Верстка интерфейса Android
Android Когда вопросы кончаются, сделать кнопку неактивной и вывести сообщение о том, что вопросы кончились
Привязка веб интерфейса Android
Android Верстка красивого интерфейса
Подскажите элемент интерфейса Android

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

Или воспользуйтесь поиском по форуму:
TanaTiX
Модератор
2738 / 1583 / 144
Регистрация: 19.02.2011
Сообщений: 5,695
29.08.2011, 11:28  [ТС]     Вопросы по настройке интерфейса #10
Вот захотелось мне, чтоб моя программа несколько меняла вид при определенных событиях. К примеру, при клике по кнопке меню хочу показать это самое меню (пример обработки клика в этом разделе чуть выше). Как мне правильней поступить: создавать несколько лэйаутов для нескольких состояний приложения (как это осуществить? создание новой xml по определению вызывает ошибку) или есть другие способы? Как вариант блокировать все имеющееся содержимое сцены, но если элементов много, то программно пройтись по каждому - не правильное решение, как мне представляется. Можно ли добавить некий контейнер поверх всего, чтоб все нижележащее было недоступно или в андроиде подобные задачи решаются другими способами?

Добавлено через 12 часов 38 минут
Вот (надеюсь админы не против такой ссылки), может быть полезным. Но в моем случае вопрос про меню был лишь как пример, так что вопрос еще остается открытым.
Yandex
Объявления
29.08.2011, 11:28     Вопросы по настройке интерфейса
Ответ Создать тему
Опции темы

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