2012-04-08 4 views
0

공유 환경 설정을 사용하여 몇 가지 미리 정의 된 이미지에서 배경을 설정하는 앱이 있지만 사용자가 갤러리에서 이미지를 선택할 수 있도록 허용하고 싶습니다. 어떻게해야합니까? 아래갤러리에서 앱 배경을 설정하십시오.

코드 :이 방법

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; 
      } 
    } 
} 

을에서 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

는 갤러리에서 이미지를 선택하려면 다음 줄을 추가 매니페스트 파일에이 권한을 추가하십시오.

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

갤러리 사용 권한이 필요합니까? (아침에 코드를 사용해 보겠습니다.) –

관련 문제