这个问题只是关于设计方面的疑问。我希望得到一些帮助。
基本上我有 6 个不同的 ImageView,它们都连接到同一个名为 onImageViewClicked
的方法,此方法将检查 6 个 ImageView 中的哪一个被单击,并启动 Gallery Intent
code> 从图库中选择一张照片。
现在我的问题是......图库 Intent 的结果来自 onActivityResult
方法,但从那里,如何将照片分配给选定的 ImageView???...... .这里的代码:
选择 ImageView 并启动 Gallery 的 onImageViewClicked 方法:
private void onImageViewClicked(View v){
switch (v.getId()){
case R.id.imgvW_1:
//something here
break;
case R.id.imgvW_2:
//something here
break;
case R.id.imgvW_3:
//something here
break;
case R.id.imgvW_4:
//something here
break;
case R.id.imgvW_5:
//something here
break;
case R.id.imgvW_6:
//something here
break;
}
Intent gallery = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
startActivityForResult(gallery, PICK_IMAGE);
}
方法 onActivityResult 从 Intent 获取结果:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE){
imageUri = data.getData();
//how to assign here the image to the clickedImageView?????????
}
}
---- 编辑 ---- 谢谢大家的回答。 Ramees、Hardik Maru、Mohammed Atif 和 Luca Rossi 的所有 4 个答案对我来说看起来都不错,所以......他们中的任何一个比其他人更方便吗?
最佳答案
在代码之上初始化一个 ImageView
ImageView temp_image;
你的 onImageViewClicked 将变成
case R.id.imgvW_1:
temp_image = imgvW_1
break;
case R.id.imgvW_2:
temp_image = imgvW_2
break;
最后在 onActivityResult 方法中使用以下代码
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE){
imageUri = data.getData();
temp_image.setbackground(...);// or setbitmap based on what type you have
}
}
关于Android:将图像放入选定的ImageView中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44514446/