Темный фон вместо пользовательского - но только на ICS

У меня проблема с моим приложением на ICS (Google Nexus тестирует устройство).

Мое приложение использует полностью настраиваемый внешний вид. Мои макеты имеют собственные кнопки рисования фона, имеют свои собственные рисунки и т. Д. Поэтому я нигде не использую стиль по умолчанию. Также я нигде не определял стиль.

Теперь моя проблема: приложение отлично выглядит на любом устройстве, на котором я тестировал, это pre-ics (например, 3.1, 2.3 и т. д.). Однако на ics фоновый рисунок переопределяется темно-серым фоном (Holo.Dark/Light ???).

Мой собственный фон довольно яркий, а текст черный. В ICS фон темно-серый, а текст по-прежнему черный (поскольку я определил его как черный). Поэтому текст нечитаем.

Я хочу, чтобы на любом устройстве, включая ICS, приложение отображало мой собственный фон. Я не хочу использовать какую-либо тему по умолчанию.

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

РЕДАКТИРОВАНИЕ: Хорошо, вот макет, который не работает. Так как он довольно длинный, я опустил ненужные части и добавил несколько комментариев. Также, прежде чем кто-либо спросит. Фоновый рисунок доступен для любого устройства. Также важно знать, что этот макет используется для всех действий в качестве основы. Все действия раздувают свои собственные макеты в content-FrameLayout.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/bg"
    android:baselineAligned="false"
    android:orientation="vertical" >
    <!-- the background of this LL is _not_ shown on ICS -->

    <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_menu_top"
    android:orientation="horizontal" >
    <!-- the background of this LL is shown on ICS -->

    <!-- the title of the activity at the top of the screen -->
    <TextView
        android:id="@+id/main_frame_title"
        android:layout_width="0dip"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_weight="1"
        android:gravity="center"
        android:text="Title"
        android:textColor="#FFF"
        android:textSize="25sp"
        android:textStyle="bold" />

    <!-- some other views here -->
    </LinearLayout>


    <!-- this text is not visible on a dark background but on a bright one -->
    <TextView
    android:id="@+id/main_frame_subtitle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="5dip"
    android:text="Subtitle"
    android:textColor="#000"
    android:textSize="20sp"
    android:textStyle="bold" />

    <FrameLayout
    android:id="@+id/main_frame_content"
    android:layout_width="match_parent"
    android:layout_height="0dip"
    android:layout_weight="1" >
    <!-- every activity inserts its specific layout here -->
    </FrameLayout>

    <LinearLayout
    android:id="@+id/main_frame_breadcrumb"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_menu_top"
    android:orientation="horizontal" >

    <!-- breadcrumb bar at the bottom -->
    <!-- many ImageButtons are here  -->
    </LinearLayout>

</LinearLayout>

person js-    schedule 03.03.2012    source источник
comment
Я не готов ответить на ваш вопрос, но я ожидаю, что люди с большей готовностью ответят вам, если вы включите оскорбительный макет.   -  person Julian Fondren    schedule 03.03.2012


Ответы (1)


На самом деле у меня была аналогичная проблема с фоновым изображением макета, которое не отображалось на моем Galaxy Nexus. Оказывается, в какой-то момент я включил аппаратное ускорение 2D-графики:

Настройки > Параметры разработчика > Принудительный рендеринг GPU

Отключение этой функции устранило проблему, и теперь мои фоновые изображения отображаются нормально. Было очень неприятно устранять проблему, но, найдя ответ, я увидел, что эта конкретная опция нарушает довольно широкий спектр различных проблем с графикой. Во всяком случае, надеюсь, это в вашем случае. Надеюсь это поможет.

person polyclef    schedule 05.03.2012
comment
Поскольку я использую много анимации, я не хочу отключать аппаратный рендеринг. :( - person js-; 07.03.2012