#android #screen
#Android #экран
Вопрос:
Последние несколько дней я пытаюсь создать приложение, которое может настраивать экран в соответствии с изменением размера эмулятора.. Я нашел решение, которое использует несколько экранов.
но я не могу этого сделать, я воспользовался помощью этого , но не могу понять, как я могу setContentView(R.layout.main);
? потому что, когда я нажимаю.(точка) после R
этого мне не отображаются папки ниже ..: (я создал 3 папки с именами layout-large
, layout-small
и layout-large-land
под res
папкой в моем приложении для Android
я добавил это в свой файл манифеста..
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true" />
чего мне здесь не хватает? я использую Android 1.6, заранее спасибо
вопрос в том, должен ли я также предоставлять этот main.xml
файл по умолчанию layout folder
? да, тогда это не влияет на размер экрана, нет, тогда это принудительно закрывает мое приложение, которое я также пробовал использовать API level 7
, но проблема остается прежней
это мой XML-файл
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:id="@ id/rl"
android:layout_height="360dip">
<!--
<WebView android:id="@ id/webviewHelp"
android:layout_width="fill_parent"
-->
<!-- android:layout_height="fill_parent" />-->
<WebView android:id="@ id/webviewHelp" android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<Button android:id="@ id/My_btn"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" android:gravity="center"
android:textSize="8px" android:text="Download this mp3 file"
android:textColor="@color/white" android:layout_width="fill_parent"
android:layout_height="28dip" android:visibility="invisible" />
<Button android:id="@ id/My_btn1"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true" android:text="this is button !"
android:layout_width="0dip" android:layout_height="0dip"
android:visibility="invisible" />
</RelativeLayout>
Комментарии:
1. setContentView (R.layout.main) будет таким же. В зависимости от размера эмулятора Android выберет, какую папку использовать.
2. Он не покажет вам никакого имени папки, кроме макета по умолчанию, и это не ваша головная боль, Android автоматически выберет соответствующую папку
3. Я полностью согласен с @Rosalie, android справится с этим за вас, просто укажите XML-файл с тем же именем в этой папке.
Ответ №1:
Пожалуйста, добавьте несколько XML-файлов макета в эти папки, прежде чем вводить точку после R 🙂 Сами папки не генерируют идентификаторы ресурсов, но XML-файлы в них генерируют.
Комментарии:
1. но этот файл также должен находиться в папке m layout? в противном случае приложение принудительно закрывается, и если я предоставляю, то оно принимает это и не отображает никаких изменений при изменении на экране просмотра моего обновленного кода
2. Вы помещаете разные файлы макета в разные папки, и среда выполнения Android выбирает в папке тот, имя которого соответствует показателям отображения экрана текущего устройства и ориентации. Например:
setContentView(R.layout.main);
загрузит main.xml в папкеlayout-large-port
, если устройство имеет большой экран и в данный момент находится в книжной ориентации, или в макете папки-small-land, если оно имеет маленький экран и в данный момент находится в альбомной ориентации. Android выдает исключение в обоих случаях, если не может найти файл с именем main.xml в нужной папке.
Ответ №2:
Я не уверен, что это то, что вы имели в виду, но у меня это сработало: ScalingLinearLayout