2012-04-08 12 views
0

Ich habe eine App mit gemeinsamen Einstellungen, um den Hintergrund aus ein paar vorgegebenen Bildern, aber ich möchte den Benutzer in der Lage sein, ein Bild aus ihrer Galerie auswählen können. Wie kann ich das machen?Set App Hintergrund aus der Galerie

-Code unten:

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

Antwort

2

In onCreate Verfahren diese Zeilen fügen Sie ein Bild von Ihrer Galerie zu holen:

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

und unter onCreate diese Methode add:

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

Auch Fügen Sie diese Berechtigung in der Manifestdatei hinzu:

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

Benötige ich irgendwelche Berechtigungen, um Galerie zu verwenden? (Ich werde den Code am Morgen versuchen.) –

Verwandte Themen