Android: фон диалога на эмуляторе и на моем телефоне разные цвета - PullRequest
0 голосов
/ 10 февраля 2012

Это диалоговое окно на эмуляторе:

emulator

И это на моем телефоне:

phone

Я пыталсяустановка фона для моего макета, но тогда пространство заголовка и нижнее пространство по-прежнему будут белого цвета.Как мне «починить» его?

Если это имеет значение, вторая картинка из MIUI ROM.

// РЕДАКТИРОВАТЬ: Вот мой layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="wrap_content" android:layout_height="wrap_content">

    <Spinner
        android:id="@+id/spinner_minutes"
        android:layout_width="170dip"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:entries="@array/timer_values"/>

    <TextView 
        android:id="@+id/text_timer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:textAppearance="?android:attr/textAppearanceMedium"
        android:visibility="gone"/>


    <LinearLayout
        android:id="@+id/button_holder"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/spinner_minutes"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dip">

        <Button
            android:id="@+id/button_set"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:text="Set"
            android:layout_marginLeft="10dip"
            android:layout_marginBottom="5dip" />

        <Button
            android:id="@+id/button_cancel"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:text="Cancel"
            android:layout_marginRight="10dip"
            android:layout_marginBottom="5dip" />

    </LinearLayout>

    <LinearLayout 
        android:id="@+id/button_holder2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/text_timer"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="20dip"
        android:visibility="gone">

        <Button
            android:id="@+id/button_close"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:text="Close"/>

        <Button
            android:id="@+id/button_cancel2"
            android:layout_width="100dip"
            android:layout_height="wrap_content"
            android:text="Cancel"/>
    </LinearLayout>

</RelativeLayout>

Я создаю диалог следующим образом:

about_dlg=new Dialog(SoundRelaxerActivity.this);
about_dlg.requestWindowFeature(Window.FEATURE_NO_TITLE);
about_dlg.setContentView(R.layout.about_dialog);

about_dlg.show();

Ответы [ 3 ]

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

Убедитесь, что вы устанавливаете фон верхнего макета (в данном случае относительного макета)

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content" android:layout_height="wrap_content"
    android:background="#c0c0c0">

Эмулятор просто использует цвет по умолчанию, отличный от вашего телефона.Измените # c0c0c0 на любой цвет, который вы хотите

1 голос
/ 03 марта 2012

Звонок:

about_dlg=new Dialog(SoundRelaxerActivity.this);

будет использовать системную тему по умолчанию. Каждый производитель оборудования разрабатывает свои собственные системные темы по умолчанию. Например, значение по умолчанию Button в Motorola Blur может выглядеть иначе, чем в HTC Sense. Если вы хотите создать диалог с пользовательской темой, используйте вместо этого этот вызов:

about_dlg = new Dialog(context, android.R.style.Theme);

НО android.R.style.Theme может быть не то, что вы хотите. Посмотрите на http://developer.android.com/reference/android/R.style.html и проверьте любое из значений, определенных как Theme_

И ГОЛОВА Вверх:

Это может не работать из коробки. Вам нужно изменить XML-файл макета, чтобы стили соответствовали выбранной теме. Например, Android.R.style.Theme по умолчанию имеет сплошной черный фон.

И, наконец, это может не стоить усилий. В то время как Android Fragmentation - это боль в заднице, иногда нам приходится принимать это. Пользователь привык к настройкам устройства по умолчанию - например, если все диалоги на его телефоне белые, а у вас черные, они могут испортить это. Это слабый пример, но, надеюсь, вы поняли.

0 голосов
/ 27 февраля 2012

Я знаю, что в Android 4 вы можете запросить тему Holo по умолчанию для вашего приложения, которая исключает эту возможность, поскольку Holo ДОЛЖЕН присутствовать в системе Android 4.До этого все, что у вас есть, - это тема по умолчанию, которая может быть чем угодно.

Вопрос в том, почему ваш текст белым по белому на MIUI?Вы устанавливаете это явно?Если это не так, то я бы посчитал, что вы видите ошибку в теме, а не в своем приложении, потому что, если автор темы сделал эти диалоги белыми, тогда цвет текста по умолчанию должен быть темным, иначе каждое приложение будет страдатьта же проблема.

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