انجمن سایت کلیدستان


رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در Shared Preferences (ذخیره تصویر پس زمینه layout) (برنامه نویسی اندروید)

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

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

کد پی‌اچ‌پی:
public class ImagePicker extends Activity {

 
   @Override
    protected void onCreate
(Bundle savedInstanceState) {
 
       super.onCreate(savedInstanceState);
 
       setContentView(R.layout.activity_selected_images);
 
       setTitle("");

 
       Button imgPicker = ...;
 
       imgPicker.setOnClickListener(new View.OnClickListener() {
 
           @Override
            public void onClick
(View view) {
 
               Intent getImageFromGalleryIntent =
 
                       new Intent(Intent.ACTION_PICKMediaStore.Images.Media.INTERNAL_CONTENT_URI);
 
               startActivityForResult(getImageFromGalleryIntent0);
 
           }
 
       });
 
   }
 
   
    
@Override
    protected void onActivityResult
(int requestCodeint resultCodeIntent data) {
 
       super.onActivityResult(requestCoderesultCodedata);
 
       SharedPreferences pref getSharedPreferences("images"MODE_PRIVATE);
 
       SharedPreferences.Editor editor pref.edit();
 
       if (resultCode == Activity.RESULT_OK && data != null) {

 
           String imagePath getPath(data.getData());
 
           editor.putString("imgPath"imagePath);
 
           editor.apply();
 
           
        
}
 
   }

 
   public String getPath(Uri uri) {
 
       String[] projection = {MediaStore.Images.Media.DATA};
 
       Cursor cursor managedQuery(uriprojectionnullnullnull);
 
       startManagingCursor(cursor);
 
       int column_index cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
 
       cursor.moveToFirst();
 
       return cursor.getString(column_index);
 
   }


با اجرای کد بالا آدرس عکس تو یه رشته ذخیره میشه و هر وقت خواستی میتونی با کد زیر عکس رو بندازی تو بکگراند(API 16 به بالا) :

کد پی‌اچ‌پی:
LinearLayout l = new LinearLayout(context);
 
       l.setBackground(Drawable.createFromPath(pref.getString("imgPath",null))); 

اما نکته ای که هست اینه که با اجرای اکتیوتی مورد نظر باید چک کنیم که کاربر عکسی انتخاب کرده یا نه
اگر انتخاب کرده باشه داخل شی shared یه استرینگ ذخیره شده اگه نه هیچ مقداری نداریم (null) 
پس داخل متد onCreate اکتیوتی یه شرط میذاریم :

کد پی‌اچ‌پی:
if (pref.getString("imgPath",null)!=(null)){
 
           LinearLayout l = new LinearLayout(context);
 
           l.setBackground(Drawable.createFromPath(pref.getString("imgPath",null)));
 
       

ضمنا مجوز خواندن از فایل رو هم فراموش نکنید
پاسخ
 سپاس شده توسط ze_ca ، admin


پیام‌های این موضوع
RE: مشکل در Shared Preferences - توسط دیب دمینی - ۱۳۹۴/۱۱/۱۸, ۰۲:۴۴ ق.ظ

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان