رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

مشکل در Shared Preferences (ذخیره تصویر پس زمینه layout)


پست های پیشنهاد شده

سلام

یه مشکلی با این برنامه پیدا کردم

میخوام وقتی یه تصویری رو از گالری میگیرم بندازمش بکگراند یه لینیر لایوت

خوب تا اینجاش که هیچی

ولی وقتی میخوام اینو ذخیره کنم که دفعه بعدم که میام همون تصویره همچنان بکگراند بمونه

بر میگرده همون پیش فرض

یه نکته ایم بگم که صفحه تنظیمات برنامم هست و اطلاعات رو به صفحات دیگه میفرستم یعنی باید توی اکتیویتی های دیگه از این تصویر بعنوان بکگراند لینیر لایوتم استفا ده کنم

در ضمن میخوام حتما همین عکسایی که خودم در گالری قرار دادم فقط انتخاب کنه

یعنی نمیخوام عکس پس زمینه از گوشی خودش بزاره

و در نهایت لطفا مشکل و راه رفع همین برنامه رو بهم بگید(منظورم اینه که فقط همین روش رو توضیح بدید ، روش های دیگه رو میدونم ، همینو فقط گیرم)

 

با تشکر

ینم کدش

Integer[] imageIDs = {
           R.drawable.background2,
           R.drawable.img_bdeff,
           R.drawable.imgb_9nomreie,
           R.drawable.imgb_5dolar,
           R.drawable.imgb_andaki_sabr,
           R.drawable.imgb_chomanaiamouravad,
           R.drawable.imgb_emamreza
   };

SharedPreferences shFont , shBack ;
LinearLayout sasa;
int position;


protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_new_sett);

sasa = (LinearLayout) findViewById(R.id.myLinearLayout);
Gallery gallery = (Gallery) findViewById(R.id.gallery1);
       gallery.setAdapter(new ImageAdapter(this));
       gallery.setOnItemClickListener(new AdapterView.OnItemClickListener() {
           public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
               // display the images selected
               sasa.setBackgroundResource(imageIDs[position]);
               //imageView.setImageResource(imageIDs[position]);
           }
       });

shBack = getSharedPreferences("settingBack", 0);
       position = shBack.getInt("back?", 0);// pishfars background aval

sasa.setBackgroundResource(imageIDs[position]);


public class cOnItemSelectedListener implements OnItemSelectedListener {

       @Override
       public void onItemSelected(AdapterView<?> parent, View arg1, int post,
                                  long id) {
           
           sasa.setBackgroundResource(imageIDs[position]);

       }

@Override
       public void onNothingSelected(AdapterView<?> arg0) {
           // TODO Auto-generated method stub

       }

   }
   @Override
   protected void onPause() {
       // TODO Auto-generated method stub
       super.onPause();
    SharedPreferences.Editor ed2 = shBack.edit();
       ed2.putInt("back?", position);
       ed2.commit();
       sasa.setBackgroundResource(imageIDs[position]);
   }
public class ImageAdapter extends BaseAdapter {
       private Context context;
       private int itemBackground;
       public ImageAdapter(Context c)
       {
           context = c;
           // sets a grey background; wraps around the images
           TypedArray a =obtainStyledAttributes(R.styleable.MyGallery);
           itemBackground = a.getResourceId(R.styleable.MyGallery_android_galleryItemBackground, 0);
           a.recycle();
       }
       // returns the number of images
       public int getCount() {
           return imageIDs.length;
       }
       // returns the ID of an item
       public Object getItem(int position) {
           return position;
       }
       // returns the ID of an item
       public long getItemId(int position) {
           return position;
       }
       // returns an ImageView view
       public View getView(int position, View convertView, ViewGroup parent) {
           ImageView imageView = new ImageView(context);
           imageView.setImageResource(imageIDs[position]);
           imageView.setLayoutParams(new Gallery.LayoutParams(100, 100));
           imageView.setBackgroundResource(itemBackground);
           return imageView;
       }

   }


}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من نفهمیدم الان مشکلت دقیقان کجاست ؟؟

اگه می خوای فقط از تو برنامه استفاده کنه می تونی عکسا رو تو asse یا res بزار و اونجا فراخونی کنی

آموزش Shared Preferences تو لینک زیر است .

http://www.kelidestan.com/keys/keys.php?key=288

اگه پاسخ مناسب نبود بیشتر در مورد پروژهت توضیح بدی بهتره ..

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام

من نفهمیدم الان مشکلت دقیقان کجاست ؟؟

اگه می خوای فقط از تو برنامه استفاده کنه می تونی عکسا رو تو asse یا res بزار و اونجا فراخونی کنی

آموزش Shared Preferences  تو لینک زیر است .

http://www.kelidestan.com/keys/keys.php?key=288

اگه پاسخ مناسب نبود بیشتر در مورد پروژهت توضیح بدی بهتره ..

ببینید با فراخونیش که مشکل ندارم

فقط وقتی روی هر عکسی کلیک میشه روی بک گراند یه لینیر لایوت توی همون اکتیویتی اجرا میشه

حالا من میخوام که این اتفاق ذخیره بشه

یعنی وقتی از این اکتیویتی میای بیرون و دوباره برمیگردی همون عکسی که آخرین بار روی لینیر لایوتم گذاشتم

دوباره همون تصویرو ببینم ، نه اون تصویری که پیش فرض گذاشتم

این طوری  بگم که این صفحه ، صفحه تنظیمات یک نرم افزاره که اگه یک بک گراند بین اون تصاویری که گذاشتم انتخاب کنید توی همین اکتیویتی و یک اکتیویتی دیگه عوض میکنه.(البته فقط بک گراند یه لینیر لایوت)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

خب دوست عزیز اگه اجرا نمیشه شاید آدرس عکس رو اشتباه می دی ؟؟

ممنون از کمکتون

ولی خودم حلش کردم

مثه اینکه دو جا علامت سوال نزاشته بودم(مزخرف ترین اشتباه ممکن)

لینک ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...