java - Background image selecting in the app -
what wanted. i'm having problem setting background app. wanted page selections of wallpaper/background app user choose. once chose background wanted clicking image view, whole app should use image background.that's all.
what i've done. i've created activity has 2 imageview choices of wallpaper available , assigns image view set background image when user click on them. problem don't know how save setting , apply other activity in project.
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>
settings activity
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; }; }
thanks in advance.
public class settingsactivity extends appcompatactivity { private static final string pref_name = "nextage_quiz"; private static final int private_mode = 0; sharedpreferences getprefs; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_settings); getprefs = this.getsharedpreferences(pref_name, private_mode); 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); getprefs.edit().putint("id", r.drawable.faqicon).apply(); } }); imageviewbackground2.setonclicklistener(new view.onclicklistener() { public void onclick(view v) { settingscreen.setbackgroundresource(r.drawable.rateicon); getprefs.edit().putint("id", r.drawable.faqicon).apply(); } }); }
mainactivity:
public class mainactivity extends appcompatactivity { private static final string pref_name = "nextage_quiz"; private static final int private_mode = 0; sharedpreferences getprefs; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); getprefs = this.getsharedpreferences(pref_name, private_mode); imageview background= (imageview) findviewbyid(r.id.background); if(getprefs.getint("id",0) != 0) background.setbackgroundresource(getprefs.getint("id",0)); }
upadate: use these variables
private static final string pref_name = "nextage_quiz"; private static final int private_mode = 0; sharedpreferences getprefs;
Comments
Post a Comment