Что я хотел. У меня возникла проблема с настройкой фона для моего приложения. То, что я хотел, - это страница с выбором обоев/фона для пользователя приложения. Как только они выбрали нужный фон, щелкнув изображение, все приложение должно использовать изображение в качестве фона. Вот и все.Выбор фонового изображения в приложении
Что я сделал. Я создал действие, которое имеет 2 ImageView в качестве выбора доступных обоев и назначает изображение, чтобы установить фоновое изображение, когда пользователь нажимает на них. Проблема в том, что я не знаю, как сохранить настройки и применить ее ко всем другим действиям в моем проекте.
XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:id="@+id/settingscreen"
tools:context="com.example.naris.auin.SettingsActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Background Selector"
android:id="@+id/textViewBackgroundSelector"
android:layout_below="@+id/switchNightMode"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="38dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageViewBackground1"
android:layout_marginLeft="23dp"
android:layout_marginStart="23dp"
android:src="@drawable/rateicon"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/imageViewBackground2"
android:layout_centerVertical="true"
android:layout_toRightOf="@+id/textViewBackgroundSelector"
android:layout_toEndOf="@+id/textViewBackgroundSelector"
android:layout_marginLeft="36dp"
android:layout_marginStart="36dp"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
Настройки активности
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
final RelativeLayout Settingscreen = (RelativeLayout) findViewById(R.id.settingscreen);
ImageView ImageViewBackground1 = (ImageView) findViewById(R.id.imageViewBackground1);
ImageView ImageViewBackground2 = (ImageView) findViewById(R.id.imageViewBackground2);
ImageViewBackground1.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Settingscreen.setBackgroundResource(R.drawable.faqicon);
}
});
ImageViewBackground2.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Settingscreen.setBackgroundResource(R.drawable.rateicon);
}
});
}
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == android.view.KeyEvent.KEYCODE_BACK)
{
startActivity(new Intent(SettingsActivity.this,
MainActivity.class));
finish();
}
return false;
};
}
Спасибо заранее.
вы имеете в виду «общественный класс MainActivity расширяет ApCompatActivity {....} " – narispillai
yes i обновил мой ответ тоже. –
Я получаю "ошибку: не могу найти символьную переменную PREF_NAME & PRIVATE_MODE". Какова цель этих двух? и нужно ли нам добавить эту часть кода (MainActivity) к каждому другому действию? Нет ли другого способа установить фон с помощью XML? – narispillai