Урок 5. Layout-файл в Activity. XML представление. Смена ориентации экрана.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
День добрый, уменя возник вопрос по размеру кнопок!
У меня есть данная конструкция:
<TableRow>
<Button
android:id="@+id/auto_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ramka2" />
<Button
android:id="@+id/angel_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ramka2" />
<Button
android:id="@+id/about_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ramka2" />
</TableRow>
На разных устройствах, этот ряд кнопок выглядит по разному, где-то кнопки вытянуты в высоту, где то в ширину.
Хотелось бы узнать как задать параметр android:layout_height равный 1/3 параметра android:layout_width, что бы кнопки в ряд получались всегда квадратные!!!
Заранее спасибо!!!
У меня есть данная конструкция:
<TableRow>
<Button
android:id="@+id/auto_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ramka2" />
<Button
android:id="@+id/angel_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ramka2" />
<Button
android:id="@+id/about_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/ramka2" />
</TableRow>
На разных устройствах, этот ряд кнопок выглядит по разному, где-то кнопки вытянуты в высоту, где то в ширину.
Хотелось бы узнать как задать параметр android:layout_height равный 1/3 параметра android:layout_width, что бы кнопки в ряд получались всегда квадратные!!!
Заранее спасибо!!!
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Вопрос обратный: как сделать чтобы, при смене ориентации экрана не менялась ориентация программы? У меня сейчас layout имеет ориентацию vertical, и мне нужно что при повороте layout оставался на месте. Это возможно?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
В файле манифеста, для Activity, есть свойство Screen orientation.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Спасибо за наводку.
Я использовал
Код: Выделить всё
android:screenOrientation=["unspecified" | "user" | "behind" |
"landscape" | "portrait" |
"reverseLandscape" | "reversePortrait" |
"sensorLandscape" | "sensorPortrait" |
"sensor" | "fullSensor" | "nosensor"]
Код: Выделить всё
android:screenOrientation = "portrait"
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
"Создадим еще один layout-файл, например myscreen.xml. Для этого выделим папку res/layout в нашем проекте и нажмем кнопку создания нового файла. В поле File вводим имя файла: myscreen.xml и жмем Finish. Новый layout-файл должен сразу открыться."
Эта фраза, судя по комментам, вызвала затруднения сразу у нескольких человек. Наверное, лучше уточнить, что создавать файл надо не просто кнопкой создания нового файла, а использовать для этого после нажатия соответствующий мастер "Android XML Layout File". Или то же самое можно сделать через контекстное меню папки: "Создать - Прочие... - Android XML Layout File", что немного более интуитивно понятно (я всегда опасаюсь для локальных действий нажимать глобальные кнопки в интерфейсе всего окна...)
Эта фраза, судя по комментам, вызвала затруднения сразу у нескольких человек. Наверное, лучше уточнить, что создавать файл надо не просто кнопкой создания нового файла, а использовать для этого после нажатия соответствующий мастер "Android XML Layout File". Или то же самое можно сделать через контекстное меню папки: "Создать - Прочие... - Android XML Layout File", что немного более интуитивно понятно (я всегда опасаюсь для локальных действий нажимать глобальные кнопки в интерфейсе всего окна...)
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
видел несколько похожих проблем в теме, суть в том что при запуске приложения необходимо закрывать в eclipse открытые для редактирования лейауты иначе генерится пустой файл "...out.xml" и соответственно дальше ничего не работает.
Может быть будет кому-то полезно.
Может быть будет кому-то полезно.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Интересно. Я иногда прямо в открытом layout жму CTRL+F11, проблем ни разу не было.izekia писал(а):видел несколько похожих проблем в теме, суть в том что при запуске приложения необходимо закрывать в eclipse открытые для редактирования лейауты иначе генерится пустой файл "...out.xml" и соответственно дальше ничего не работает.
Может быть будет кому-то полезно.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Я сначала в книжке на это наткнулся, потом уже сам, книга Grantt Allen "Beginning Android 4"damager82 писал(а): Интересно. Я иногда прямо в открытом layout жму CTRL+F11, проблем ни разу не было.
How Not to Run Your Project
When you go to run your project, be sure that an XML file is not the active tab in the
editor. Attempting to “run” this will result in a .out file being created in whatever
directory the XML file lives in (e.g., res/layout/main.xml.out). To recover, simply delete
the offending .out file and try running again, this time with a Java file as the active tab.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
подскажите, вот у вас идёт описания 4х кнопок, это описания отличаеются всего на 1 цифру, в названии и ИД.
а у меня 8 строк и в каждой 4 разных элементов, описания изобилуют параметрами, получается очень громоздко, параметр надо исправлять сразу в 8 элементах, выручает только выделение в графической среде и смена параметра через интерфейс.
нельзяли както упростить всё это?
а у меня 8 строк и в каждой 4 разных элементов, описания изобилуют параметрами, получается очень громоздко, параметр надо исправлять сразу в 8 элементах, выручает только выделение в графической среде и смена параметра через интерфейс.
нельзяли както упростить всё это?
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Попробуйте использовать стили в layout-файлах.alex6999 писал(а):параметр надо исправлять сразу в 8 элементах
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
У меня тоже с этим никаких траблов не было, видимо с момента выхода книжки это поправили в ADT.izekia писал(а):Я сначала в книжке на это наткнулся, потом уже сам, книга Grantt Allen "Beginning Android 4"damager82 писал(а): Интересно. Я иногда прямо в открытом layout жму CTRL+F11, проблем ни разу не было.How Not to Run Your Project
When you go to run your project, be sure that an XML file is not the active tab in the
editor. Attempting to “run” this will result in a .out file being created in whatever
directory the XML file lives in (e.g., res/layout/main.xml.out). To recover, simply delete
the offending .out file and try running again, this time with a Java file as the active tab.
Глюки с Эклипсом у меня бывали конечно.
Как то добавил строку в strings и использовал её в setError с помощью метода getString (в методе setError почему то нет конструктора для работы с ID).
Запустил, при появлении ошибки в ячейке предупреждение появилось, но... совсем с другим текстом (из другого строкового ресурса). Я проверил файл R там все нормально, ID у строк генерируются разные. Но почему программа путает строки я так и не понял. Решилось просто, я удалил эту злополучную строку, которая появлялась вместо той что мне нужно, в коде ничего не менял, запустил программу - все норамльно, потом опять вернул строку в strings на тоже самое место, запустил - опять все нормально. Я так и не врубился что это было?
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Возможно не по теме,но всё же:
Нужно что бы приложение устанавливалось на карту памяти (версия Андроида в проекте 2.3.3.)
Я добавил в Манифест строку:
android:installLocation="preferExternal"
Но приложение всё равно устанавливается на телефон (только в настройках предлагает на карту перенести).
Я пробовал задавать ещё auto, но там та же история.
Нужно что бы приложение устанавливалось на карту памяти (версия Андроида в проекте 2.3.3.)
Я добавил в Манифест строку:
android:installLocation="preferExternal"
Но приложение всё равно устанавливается на телефон (только в настройках предлагает на карту перенести).
Я пробовал задавать ещё auto, но там та же история.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
установка на сд карту не гарантируется, и это правильно, у меня даже в старом галакси с было 2 гига внутренней памяти.
скорее всего современные телефоны игнорируют это если свободной внутренней памяти дофига.
кстати в ISC телефонах SD карта и вовсе эмулируется во встроенной памяти, а физическая карта находся в папке в сд карте
вот что пишется
If you declare "preferExternal", you request that your application be installed on the external storage, but the system does not guarantee that your application will be installed on the external storage. If the external storage is full, the system will install it on the internal storage. The user can also move your application between the two locations.
If you declare "auto", you indicate that your application may be installed on the external storage, but you don't have a preference of install location. The system will decide where to install your application based on several factors. The user can also move your application between the two locations.
скорее всего современные телефоны игнорируют это если свободной внутренней памяти дофига.
кстати в ISC телефонах SD карта и вовсе эмулируется во встроенной памяти, а физическая карта находся в папке в сд карте
вот что пишется
If you declare "preferExternal", you request that your application be installed on the external storage, but the system does not guarantee that your application will be installed on the external storage. If the external storage is full, the system will install it on the internal storage. The user can also move your application between the two locations.
If you declare "auto", you indicate that your application may be installed on the external storage, but you don't have a preference of install location. The system will decide where to install your application based on several factors. The user can also move your application between the two locations.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Извините, если, беру на себя лишнее - у Вас этого в уроках не было(или я не нашла). А наверное было бы полезно, добавить строчку о том, что при смене ориентации экрана - по-новой вызывается onCreate() для активити ну и там методы борьбы ))). Когда уже знаешь этот факт он кажется очевидным, а вот когда не знаешь - можно об этом и не подумать.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Если есть мысли по улучшению уроков - пишите обязательно. Я уже несколько раз фиксил и добавлял в уроки замечания разные.Crime писал(а):при смене ориентации экрана - по-новой вызывается onCreate() для активити ну и там методы борьбы ))).
А про смену ориентации я пишу в уроках 23 и 70. И, когда начну рассказывать про AsyncTask, будет очень полезный урок, посвященный этой теме.
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Спасибо. Таки не дошла до 70 - го )
-
- Сообщения: 12
- Зарегистрирован: 13 июн 2012, 02:29
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
ругается на android:layout_width="match_pattern". Говорит что нельзя:
Заменил на fill_pattern.
Заменил на fill_pattern.
win 7 32, android 2.3
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Если использовать Android версии < 2, то там не существует еще match_parent.Eshkin-Kat писал(а):ругается на android:layout_width="match_pattern". Говорит что нельзя:
Заменил на fill_pattern.
-
- Сообщения: 12
- Зарегистрирован: 13 июн 2012, 02:29
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Я использовал 2.2.
win 7 32, android 2.3
Re: Урок 5. Layout-файл в Activity. XML представление. Смена
Надеюсь, что пишу туда, куда нужно )
При прочтении уроков я обычно вставлял код программы, копируя его прямо с сайта, нажимал Ctrl+Shift+O и запускал проект. Практически всегда все работало( ну за исключением смены match_parent на fill_parent), но порой стал замечать, что Eclipse не находит, созданного мной Layout в файле ресурсов R. Фактически он создавался и я его мог просмотреть. Там было всё впорядке. Все id Layout`ов были зарегестированы и видны, но в файле MainActivity.java при вызове функции setContentView(R.layout.main); всегда подчеркивалось красным.
Дело оказалось в том, что при нажатии Ctrl+Shift+O Eclipse предлогал добавить пакет android.R который, я так понял, совсем не связан с файлом R, который генерируется в проекте. У меня не возникало сомнений, что это нужная либа и её необходимо оставить, поэтому иногда долго искал что же не так.
Думаю это будет хорошим комментарием к уроку(если он уже есть, то сорри за невнимательность).
Вот тут прочитал по этому поводу http://stackoverflow.com/questions/8850 ... roid-error
При прочтении уроков я обычно вставлял код программы, копируя его прямо с сайта, нажимал Ctrl+Shift+O и запускал проект. Практически всегда все работало( ну за исключением смены match_parent на fill_parent), но порой стал замечать, что Eclipse не находит, созданного мной Layout в файле ресурсов R. Фактически он создавался и я его мог просмотреть. Там было всё впорядке. Все id Layout`ов были зарегестированы и видны, но в файле MainActivity.java при вызове функции setContentView(R.layout.main); всегда подчеркивалось красным.
Дело оказалось в том, что при нажатии Ctrl+Shift+O Eclipse предлогал добавить пакет android.R который, я так понял, совсем не связан с файлом R, который генерируется в проекте. У меня не возникало сомнений, что это нужная либа и её необходимо оставить, поэтому иногда долго искал что же не так.
Думаю это будет хорошим комментарием к уроку(если он уже есть, то сорри за невнимательность).
Вот тут прочитал по этому поводу http://stackoverflow.com/questions/8850 ... roid-error