Ответ 1
Это сработало для меня
getListView().setBackgroundColor(Color.TRANSPARENT);
getListView().setCacheColorHint(Color.TRANSPARENT);
getListView().setBackgroundColor(Color.rgb(4, 26, 55));
У меня есть файл PreferenceCategory
, xml, и я определил все его предпочтения, я вызываю это из класса, который расширяет PreferenceActivity
. Я не могу установить фон моего экрана настроек, этот экран отображается с помощью xml файла, показанного ниже. Посмотрите, что я уже определил android:background="#041A37"
, но по-прежнему остается цвет по умолчанию: черный.
public class MyPreferenceActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
Context mContext=super.getBaseContext();
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.layout.preference);
//v.setBackgroundColor(Color.rgb(4, 26, 55));
}
}
preference.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
android:background="#041A37" >
<PreferenceCategory>
<com.dropcall.SeekBarPreference
android:background="#041A37"
android:defaultValue="5"
android:key="@string/Interference_Delay"
android:progressDrawable="@drawable/seekbardrawable"
android:title="Seconds Delay until intereference" />
<com.dropcall.SeekBarPreference2
android:defaultValue="30"
android:key="@string/Drop_Delay"
android:progressDrawable="@drawable/seekbardrawable"
android:title="Seconds delay until drop" />
<CheckBoxPreference
android:background="@drawable/state_normal"
android:defaultValue="true"
android:key="@string/Drop_Option"
android:title="Close after call drop" />
<CheckBoxPreference
android:background="@drawable/state_normal"
android:defaultValue="true"
android:key="@string/Timer_Option"
android:title="Start timers on launch" />
</PreferenceCategory>
</PreferenceScreen>
Хотя я установил android:background="#041A37"
в каждом файле, фон не превращается в синий или любой другой цвет. Цвет по умолчанию остается черным. Как изменить цвет фона. Пожалуйста, дайте мне знать любые указатели/подсказки, если вы столкнулись с такой же проблемой, дайте мне знать, какие изменения вы внесли, чтобы установить цвет фона.
Это сработало для меня
getListView().setBackgroundColor(Color.TRANSPARENT);
getListView().setCacheColorHint(Color.TRANSPARENT);
getListView().setBackgroundColor(Color.rgb(4, 26, 55));
Вы можете определить тему, а затем установить это для своей PreferenceActivity в манифесте. Затем ваша тема может определить цвет фона или изображение окна, если вы предпочитаете это.
манифеста:
<activity android:label="@string/app_label" android:name=".client.PreferencesActivity"
android:theme="@style/PreferencesTheme">
<intent-filter>
</intent-filter>
</activity>
Затем добавьте тему в свои styles.xml
<style name="PreferencesTheme">
<item name="android:windowBackground">@drawable/background_image</item>
<item name="android:background">#FFEAEAEA</item>
</style>
В приведенном выше фрагменте есть как цвет фона, так и фоновое изображение, определяющее, как это сделать.
Еще одна проблема, связанная с цветом, заключается в том, что вы создаете тему для активности предпочтений и ставите цвет фона в виде списка:
<style name="PrefsTheme" parent="@android:style/Theme.Black.NoTitleBar">
<item name="android:windowBackground">@color/prefs_bg</item>
<item name="android:textColor">@color/text_color</item>
<item name="android:listViewStyle">@style/listViewPrefs</item>
</style>
<style name="listViewPrefs" parent="@android:style/Widget.ListView">
<item name="android:background">@color/prefs_bg</item>
<item name="android:cacheColorHint">@color/prefs_bg</item>
</style>
android:background
не является доступным атрибутом, в соответствии с документацией.
Возможно, вы могли бы пометить PreferenceActivity
, чтобы добиться изменения цвета, хотя я этого не пробовал, потому что хочу, чтобы мои настройки выглядели как у остальных Android, чтобы улучшить удобство использования приложения.
Или вы также можете сделать drawable в качестве фона:
getListView() <ударa > setBackgroundDrawableудаp > (GetResources() getDrawable (R.drawable.bluegradient).);.
Примечание. setBackgroundDrawable()
устарел. Вместо этого используйте setBackground()
.
getListView() setBackground (GetResources() getDrawable (R.drawable.bluegradient).);.
Пожалуйста, укажите линейный макет с прикрепленным текстом и укажите цвет фона и прикрепите этот xml к категории предпочтений, используя свойство layout.
<PreferenceCategory
android:layout="@layout/preftitle"
>
Если preftitle - это xml, который имеет линейный макет и текстовый вид.
Перейдите к res>values>styles.xml>
и добавьте этот код в свой <style > </style>
стиль должен быть основной темой приложения в этом @color/activ
есть цветовые ресурсы, добавленные к цветам.
<style name="app_theme" parent="@android:style/Theme">
<item name="android:windowBackground">@color/activ</item>
<item name="android:windowContentOverlay">@drawable/title_bar_shadow</item>
<item name="android:listViewStyle">@style/TransparentListView</item>
</style>
если вы используете app_theme
имя тега стиля затем добавьте подобное вашему манифесту
<application
android:name=".XXXXXX"
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/app_theme" > //here
Если вы хотите изменить свой фон