0

我曾經意圖打開用戶手機的畫廊,現在我需要爲我的activity.or集圖像設置中選擇圖片作爲牆紙的ImageView我Activity.not設定作爲手機的壁紙。 有人可以幫助我嗎? 這是我迄今使用的代碼..我可以選擇image.but然後沒有任何反應。如何使用意圖獲取外部形象,並設置爲牆紙

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

     } 
    }); 

} 

回答

2

這樣

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

實現onActivityResult爲了設置按鈕的背景創建一個BitmapDrawable這樣

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

和佈局,可以使用setBackgroundDrawable方法

+0

Thanks.it工作! – Vishwa

+0

如果我需要將此設置爲佈局或按鈕的背景,我應該怎麼做? – Vishwa

+0

@VishwaMadushan更新回答 –