Android: макет выглядит усеченным на реальном телефоне - PullRequest
0 голосов
/ 04 февраля 2012

Все время я тестировал версию Android 2, портированную на x86 (которая работает в VirtualBox), из-за проблем с эмуляторами.Мое приложение и макет на этом порту выглядят нормально.

Сейчас я заканчиваю разработку и тестирую на своем реальном телефоне Droid Bionic.

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

Может кто-нибудь посоветовать мне, как решить эту проблему?

Спасибо

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@layout/overall_background"
    android:orientation="vertical"
    >
    <GridView 
    android:id="@+id/gridView"
    android:gravity="fill_horizontal"
    android:stretchMode="columnWidth"
    android:horizontalSpacing="0px"
    android:background="@layout/grid_background"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>

1 Ответ

1 голос
/ 04 февраля 2012

Редактировать:

Я вполне уверен, что это из-за режима совместимости экрана, в котором вы работаете, потому что ваш android: targetSdkVersion в вашем манифесте установлен неправильно.Это должна быть максимальная версия SDK, с которой вы тестировали свое приложение и на котором оно работает. '

Пожалуйста, перейдите по этой ссылке и, в частности, прочитайте первые несколько абзацев.

Существует две версии режима совместимости экрана с немного отличным поведением: Версия 1 (Android 1.6 - 3.1)

Система отображает пользовательский интерфейс приложения в окне «почтовых марок».Таким образом, система отображает макет приложения так же, как и на телефоне нормального размера (эмулируя экран 320dp x 480dp), с черной рамкой, заполняющей оставшуюся часть экрана.

Чтобы отключить этоверсия режима совместимости экрана, вам просто нужно установить для android: minSdkVersion или android: targetSdkVersion значение "4" или выше, или для параметра android: resizeable значение "true".

Редактировать: Пожалуйстасм. документацию о том, как вы должны установить целевой атрибут SDK

Эти строки, в частности, представляют интерес:

Чтобы поддерживать свое приложение вместе с каждым выпуском Android, выследует увеличить значение этого атрибута, чтобы оно соответствовало последнему уровню API, а затем тщательно протестируйте ваше приложение на соответствующей версии платформы.

Учитывая, что вы столкнулись с этой проблемой, мне говорят, что ваш целевой SDK установлен на 3или ниже.Так Android 1.5 или ниже.Это означает, что любой, кто запускает ваше приложение на телефоне с чем-то более новым, чем Android 1.5, будет работать в режиме совместимости.Это приводит к снижению производительности и несовместимости графики по умолчанию.То есть графика не будет выглядеть так, как выглядит все остальное на телефоне из-за режима совместимости.

В настоящее время примерно 95% всех Android работают под более новой версией, чем 1.5.Все, что вам нужно сделать, - это обновить SDK для Tarket до 4,5,6,7 ... и т. Д. По одному и полностью тестировать приложение, пока не дойдете до текущего выпуска SDK 15. После выпуска целевой SDK должен быть15, чтобы убедиться, что он работает на всех версиях ОС.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...