2012-04-08 7 views
0

いくつかの画像から背景を設定するための共有設定を使用するアプリがありますが、ユーザーが自分のギャラリーから画像を選択できるようにしたいと考えています。これどうやってするの?ギャラリーからアプリの背景を設定する

以下のコード:のonCreateメソッドで

int bak; 
int em; 
int lo; 
int lay; 
SharedPreferences data; 
public static String filename = "bg"; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    lo = R.layout.main; 
    data = getSharedPreferences(filename, 0); 
    lay = data.getInt("lout", lo);   
    setContentView(lay); 

    em = R.drawable.bakgrund; 
    data = getSharedPreferences(filename, 0); 
    bak = data.getInt("bakgrund", em); 

} 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 
    RelativeLayout bg = (RelativeLayout) findViewById(R.id.might); 
    bg.setBackgroundResource(bak); 

答えて

2

あなたのギャラリーから画像を選択するには、これらの行を追加します。

Intent intent = new Intent(); 
intent.setType("image/*"); 
intent.setAction(Intent.ACTION_GET_CONTENT); 
startActivityForResult(Intent.createChooser(intent, "Select Picture"),0); 

とのonCreate以下は、このメソッドを追加します。また、

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    switch (requestCode) { 
     case 0: 
      data.getDataString() 
      if (resultCode == RESULT_OK) { 
       try { 
        Bitmap bitmap = MediaStore.Images.Media.getBitmap(_activity.getContentResolver(), data.getDataString()); 
        RelativeLayout bg = (RelativeLayout) findViewById(R.id.might); 
        Drawable drawable = new BitmapDrawable(getResources(), bitmap); 
        bg.setBackgroundDrawable(drawable); 
       } catch (FileNotFoundException e) { 
        e.printStackTrace(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       break; 
      } 
    } 
} 

マニフェストファイルにこのアクセス許可を追加します。

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
+0

ギャラリーを使用する権限が必要ですか? (私は午前中にコードを試してみる) –

関連する問題