У меня проблема с моим приложением на ICS (Google Nexus является тестирующим устройством).
Мое приложение использует полностью настраиваемый внешний вид. У моих макетов есть собственные кнопки фона, которые имеют собственные чертежи и т.д. Поэтому я не использую стиль по умолчанию нигде. Также я нигде не определял стиль.
Моя проблема сейчас: приложение отлично смотрится на любом тестируемом устройстве, которое является предикой (например, 3.1, 2.3 и т.д.). В то же время фоновый рисунок переопределяется темно-серым фоном (Holo.Dark/Light???).
Мой пользовательский фон довольно яркий, а текст черный. На ICS фон темно-серый, а текст по-прежнему черный (так как я определил его как черный). Таким образом, текст не читается.
Я хочу: на любом устройстве, включая ICS, я хочу, чтобы приложение отображало мой собственный фон. Я не хочу использовать тему по умолчанию.
Надеюсь, этот вопрос не задавался раньше. Я считаю, что у кого-то еще была одна и та же проблема, но я не мог найти что-либо в Google или SO...
EDIT: Хорошо, это макет, который терпит неудачу. Поскольку я долгое время оставлял нерелевантные детали и добавлял некоторые комментарии. Также перед тем, как кто-нибудь спросит. Доступный фон доступен для любого устройства. Также важно знать, что этот макет используется для всех видов деятельности в качестве основы. Все действия раздувают свои собственные макеты в контент-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>
У меня была аналогичная проблема с фоновым изображением макета, который не отображается на моем Galaxy Nexus. Оказывается, в какой-то момент я включил 2D-аппаратное ускорение графики:
Настройки> Параметры разработчика> Принудительный рендеринг
Отключение этой функции устранило проблему, и теперь мои фоновые изображения отображаются очень хорошо. Это очень расстраивало устранение неполадок, но после того, как я нашел ответ, я увидел, что этот конкретный вариант нарушает довольно широкий спектр различных графических проблем. Во всяком случае, надеюсь, что это в вашем случае. Надеюсь это поможет.