2012-09-11 29 views
1

我已經問過,但我的理解略有增加。我已經想出瞭如何讓用戶在佈局上選擇自定義背景圖片。我用這個:如何使背景圖像持久

在我的onCreate方法:

Button player = (Button) setBg.findViewById(R.id.plBg); 

       player.setOnClickListener(new OnClickListener() { 
        public void onClick(View v) { 

         Intent i = new Intent(Intent.ACTION_PICK, 
           android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

         i.setDataAndType(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");          
         startActivityForResult(i, RESULT_LOAD_PLAYER); 

         setBg.dismiss(); 
        } 
       }); 

,並在我的onActivityResult方法:

@Override 
protected void onActivityResult(int requestCode, int resultCode, final Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

if (requestCode == RESULT_LOAD_PLAYER && resultCode == RESULT_OK && null != data) { 
     Uri selectedImage = data.getData(); 
     String[] filePathColumn = {MediaStore.Images.Media.DATA}; 

     Cursor cursor = getContentResolver().query(selectedImage, 
       filePathColumn, null, null, null); 
     cursor.moveToFirst(); 

     int columnIndex = cursor.getColumnIndex(filePathColumn[0]); 
     String picturePath = cursor.getString(columnIndex); 
     cursor.close(); 

     playerBg = (ImageView) findViewById(R.id.playerBg); 
     playerBg.setImageBitmap(BitmapFactory.decodeFile(picturePath)); 
     playerBg.setScaleType(ScaleType.CENTER_CROP); 
    } 
} 

但是當你回來'出來的應用程序,背景將恢復爲默認值。我如何獲得該背景選擇?

我已經看這個:Save bitmap to location

但我有一個很難理解它。
我也嘗試過將它保存在共享偏好中,但瞭解到這不是它們的用途。 我還是這個初學者。提前致謝。

+0

上面的代碼是從什麼方法來的? –

+0

對不起,這是在我的onActivityResult。我將編輯OP以使其更清晰 – Psest328

+1

爲什麼不在sharedpreference中有一個標誌,表示用戶設置了任何背景?而且,如果用戶設置了任何背景,則可以將圖片路徑保存在sharedpreference中。所以,每次你的活動開始時。您從sharedpref檢查標誌,並使用保存在共享前綴中的圖片路徑設置背景。 – VendettaDroid

回答

1

國際海事組織,你可以在sharedpreference標誌(布爾變量)表明用戶設置任何背景或不是?而且,如果用戶設置了任何背景,則可以將圖片路徑保存在sharedpreference中。所以,每次當你的活動開始onCreate()。您從sharedpref檢查標誌,並使用保存在共享前綴中的圖片路徑設置背景。

此外,我同意matheszabi,您需要了解更多關於android生命週期。

+0

我喜歡這個想法。生命週期我得到了。我是自學的,所以我正在轉向更復雜的事情並打路障。 – Psest328

+0

我很高興你喜歡它。 – VendettaDroid

+0

這對我來說是美麗的!謝謝! – Psest328

0

如果你是一個初學者,比你不瞭解「知道如何」,但也許基於這個有人會爲你寫一個100%的工作代碼,這是準備複製粘貼。

但是當你退出應用程序時,後臺將恢復爲默認值 。

那是因爲您不知道活動生命週期方法。 您應該在OnCreate中再次加載保存的免提。請查看here瞭解活動生命週期方法。

希望它有助於某人。

+0

我理解生命週期。我知道爲什麼它不會持續......但我無法弄清楚如何讓它堅持下去。到目前爲止,我已經完成了基本類型,例如字符串和整數,但是這會殺死我 – Psest328

+0

「您應該在OnCreate中再次加載保存的緩衝區」 – 2012-09-11 21:28:11

+0

http://stackoverflow.com/questions/3740784/store-image- and-audio-file-in-android-internal-storage – 2012-09-11 21:30:23