2017-01-09 3 views
0

Я хочу динамически создавать представления изображений внутри метода onActivityResult.Как создать образы изображений внутри метода onActivityResult в Android?

Если я определить мои ImageView так: imageView = (ImageView) findViewById(R.id.image_view); работает отлично с этим кодом:

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

    if (requestCode == PICK_PHOTO && resultCode == RESULT_OK) { 
     Uri uri = data.getData(); 

     StorageReference photoStorageReference = storageReference.child(uri.getLastPathSegment()); 
     photoStorageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       Uri downloadUri = taskSnapshot.getDownloadUrl(); 
       Picasso.with(StorageActivity.this).load(downloadUri).fit().centerCrop().into(imageView); 
      } 
     }); 
    } 
} 

Но если я создаю точку изображения внутри метода onActivityResult так:

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

    if (requestCode == PICK_PHOTO && resultCode == RESULT_OK) { 
     Uri uri = data.getData(); 

     StorageReference photoStorageReference = storageReference.child(uri.getLastPathSegment()); 
     photoStorageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
      @Override 
      public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 
       Uri downloadUri = taskSnapshot.getDownloadUrl(); 
       ImageView imageView = new ImageView(getApplicationContext()); 
       linearLayout.addView(imageView); 
       Picasso.with(StorageActivity.this).load(downloadUri).fit().centerCrop().into(imageView); 
      } 
     }); 
    } 
} 

Взгляды изображения не отображаются. Я попытался создать программно эти представления изображений в методе onCreate, но та же проблема. Ничего не отображается. Если я создаю вместо ImageView, кнопки, кнопки отображаются правильно. Что не так с моим кодом?

Заранее благодарен!

ответ

0

Вы забыли указать LayoutParameters для вновь добавленного вида. Как ниже

imageView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
+0

Я добавил «LayoutParams», но тот же результат ничего не отображается. –

+0

Вы установили ImageView с фактическим изображением? – WenChao

+0

Да, я установил 'imageView.setBackgroundResource (R.drawable.image);', а также ничего не отображалось. –

Смежные вопросы