0

je l'intention d'ouvrir la galerie du téléphone de l'utilisateur et maintenant je dois définir l'image sélectionnée comme fond d'écran pour mon image set activity.or à ImageView sur mon Activity.not l'ensemble comme fond d'écran du téléphone. quelqu'un peut-il m'aider? Voici le code utilisé jusqu'à présent je .. je ne peux rien sélectionner image.but se passe après.Comment PRÉVU pour obtenir l'image externe et comme papier peint

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_login); 
    Button chooseImg=(Button) findViewById(R.id.btnChooseImg); 
    chooseImg.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

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

      Object tag=v.getTag(); 
      Integer rId=(Integer) tag; 
      img.putExtra("bgImage", rId); 



      try{ 
      imgLayout=(ImageView) findViewById(R.id.bgImg1); 


      int imgId=img.getExtras().getInt("bgImage"); 
      imgLayout.setBackgroundResource(imgId); 

      } 
      catch(Exception e){ 
       Toast.makeText(getApplicationContext(), "nope", Toast.LENGTH_SHORT).show(); 
      } 

     } 
    }); 

} 

Répondre

2

Mettre en oeuvre onActivityResult comme ce

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

    if (requestCode == SELECT_PICTURE&& resultCode == RESULT_OK && data != null && data.getData() != null) { 

     Uri uri = data.getData(); 

     try { 
      Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri); 
      // Log.d(TAG, String.valueOf(bitmap)); 

      ImageView imageView = (ImageView) findViewById(R.id.yourimageview); 
      imageView.setImageBitmap(bitmap); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Pour le bouton de réglage créer un arrière-plan BitmapDrawable comme celui-ci

BitmapDrawable bdrawable = new BitmapDrawable(context.getResources(),bitmap); 

et pour la mise en page vous pouvez utiliser la méthode setBackgroundDrawable

+0

Thanks.it a fonctionné! – Vishwa

+0

Si j'ai besoin de définir cela comme arrière-plan pour Layout ou Button, Comment dois-je le faire? – Vishwa

+0

@VishwaMadushan mis à jour –