[英]How can I update shown dialog imageview with selected image?
I am using Alert dialog for getting Image for User team pic and then I want to show image preview on dialog which is already open. 我正在使用Alert对话框来获取用户团队图片的图像,然后我想在已经打开的对话框上显示图像预览。
I am passing image file to that fragment where my dialog is shown but how I can update that ImageView
which is in dialog I tried to update adapter by which I can notify data but still I am getting null adapter after having call on that fragment 我正在将图像文件传递到我的对话框显示的那个片段,但是我如何更新那个在对话框中的ImageView
我试图更新适配器,我可以通过它来通知数据但是在调用该片段之后我仍然得到null适配器
public void passingImage(Image image) {
testAdapter.notifyImage(image);
}
this is my Alert dialog code 这是我的警报对话框代码
public void showDialogForTeam(ChallengeData mData) {
this.mData = mData;
dialogForTeam = new Dialog(activity);
dialogForTeam.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialogForTeam.setContentView(R.layout.dialog_team_selection);
dialogForTeam.setTitle("Select Team");
spinner = (Spinner) dialogForTeam.findViewById(R.id.spinner);
imgClose = (ImageView) dialogForTeam.findViewById(R.id.imageView);
RecyclerView.LayoutManager layoutManager5 = new LinearLayoutManager(getActivity());
rvLogo = (RecyclerView) dialogForTeam.findViewById(R.id.rv_logo);
rvLogo.setHasFixedSize(true);
rvLogo.setLayoutManager(layoutManager5);
rvLogo.setAdapter(testAdapter);
btnUpload = (TextView) dialogForTeam.findViewById(R.id.btn_upload_icon);
tealLogo = (ImageView) dialogForTeam.findViewById(R.id.team_logo);
btnUpload.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int permissionCheck = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
if (permissionCheck == PackageManager.PERMISSION_GRANTED) {
openGallery();
} else {
Nammu.askForPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE, new PermissionCallback() {
@Override
public void permissionGranted() {
openGallery();
}
@Override
public void permissionRefused() {
}
});
}
}
});
GridView gridView = (GridView) dialogForTeam.findViewById(R.id.grid_view);
// Instance of ImageAdapter Class
gridView.setAdapter(new ImageAdapter(activity, this));
Spinner spinner1 = (Spinner) dialogForTeam.findViewById(R.id.spinner1);
final LinearLayout llMyteam = (LinearLayout) dialogForTeam.findViewById(R.id.ll_m_team);
final RecyclerView recyclerViewTeam = (RecyclerView) dialogForTeam.findViewById(R.id.rv_team);
String[] strings = new String[0];
if (mData.getIsTeamcreater().equals("true")) {
strings = new String[]{"Join as Team Member", "Create Team"};
} else
strings = new String[]{"Join as Team Member"};
spinner.setAdapter(new ArrayAdapter<>(activity, R.layout.row_simple_text, strings));
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
if (parent.getItemAtPosition(position).toString().equals("Join as Team Member")) {
llMyteam.setVisibility(View.GONE);
recyclerViewTeam.setVisibility(View.VISIBLE);
} else {
llMyteam.setVisibility(View.VISIBLE);
recyclerViewTeam.setVisibility(View.GONE);
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
}
});
spinner1.setAdapter(new ArrayAdapter<>(activity, R.layout.row_simple_text, strings));
if (mData.getTeams() != null && mData.getTeams().size() > 0) {
RecyclerView.LayoutManager layoutManager4 = new LinearLayoutManager(activity);
recyclerViewTeam.setHasFixedSize(true);
recyclerViewTeam.setLayoutManager(layoutManager4);
JoinTeamChallengeAdapter allTeamAdapter = new JoinTeamChallengeAdapter(activity, mData.getTeams(), this);
recyclerViewTeam.setAdapter(allTeamAdapter);
}
imgClose.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialogForTeam.dismiss();
}
});
dialogForTeam.show();
}
public void openGallery() {
ImagePicker.create(activity)
.folderMode(true) // folder mode (false by default)
.folderTitle("Folder") // folder selection title
.imageTitle("Tap to select") // image selection title
.single() // single mode
.limit(1) // max images can be selected (99 by default)
.showCamera(true) // show camera or not (true by default)
.imageDirectory("Camera") // directory name for captured image ("Camera" folder by default)
.start(9686); // start image picker activity with request code
}
MianActivity MianActivity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.e(TAG, "onActivityResult :" + requestCode);
if (requestCode == 9686) {
ArrayList<Image> images = data.getParcelableArrayListExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES);
if (images.size() > 0 && images.size() == 1){
image = images.get(0);
mainHomeFragment.passingImage(image);
}
} else if (requestCode == 9687) {
ArrayList<Image> images = data.getParcelableArrayListExtra(ImagePickerActivity.INTENT_EXTRA_SELECTED_IMAGES);
if (images.size() > 0 && images.size() == 1)
onPhotoReturned(images.get(0));
}
super.onActivityResult(requestCode, resultCode, data);
}
In the Android Developer Page under the Point Get the Thumbnail is a Example which shows how to add a Photo in a existing ImageView of the Activity after Capturing it with an Intent. 在Point下的Android Developer页面获取缩略图是一个示例,它显示了如何在使用Intent捕获它后在Activity的现有ImageView中添加Photo。 I hope it is what you are looking for. 我希望这正是你要找的。
EDIT: 编辑:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap imageBitmap = (Bitmap) extras.get("data");
mImageView.setImageBitmap(imageBitmap);
}
}
As you see, you can change a Image view through the command setImageBitmap(image)
which needs a Bitmap. 如您所见,您可以通过需要Bitmap的命令setImageBitmap(image)
更改Image视图。 If that is not helping you, try to look at the Api of ImageView 如果这对您没有帮助,请尝试查看ImageView的Api
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.