从gallry获取图像中片段的ImageView设置? [英] Get image from gallry to set in imageview in fragment?
本文介绍了从gallry获取图像中片段的ImageView设置?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何从GALLARY获取图像中片段的ImageView设置?在fragment..this的onActivityResult不叫code I片段中写道:
img_user.setOnClickListener(新View.OnClickListener(){
@覆盖
公共无效的onClick(视图v){ 意图I =新意图(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(ⅰ,RESULT_LOAD_IMAGE);
}
});
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,结果code,数据);
如果(数据!= NULL){
乌里selectedImage = data.getData();
的String [] = filePathColumn {MediaStore.Images.Media.DATA};
光标光标=的getContext()。getContentResolver()查询(selectedImage,
filePathColumn,NULL,NULL,NULL); cursor.moveToFirst();
INT参数:columnIndex = cursor.getColumnIndex(filePathColumn [0]);
字符串picturePath = cursor.getString(参数:columnIndex);
img_user.setImageBitmap(BitmapFactory.de codeFILE(picturePath));
cursor.close`enter code here`();
}其他{
Toast.makeText(getActivity(),再试一次!,Toast.LENGTH_SHORT)
。显示();
} }
解决方案
您可以通过这种方式做到这一点....你的主要活动
@覆盖
保护无效的onActivityResult(INT申请code,INT结果code,意图数据){
//调用super
super.onActivityResult(要求code,结果code,数据);
}
和您的片段里面
意向书I =新意图(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// ******** code作物图像
i.putExtra(裁剪,真);
i.putExtra(aspectX,100);
i.putExtra(aspectY,100);
i.putExtra(outputX,256);
i.putExtra(outputY,356); 尝试{ i.putExtra(回归数据,真正的);
startActivityForResult(
Intent.createChooser(ⅰ,选择图像),0);
}赶上(ActivityNotFoundException前){
ex.printStackTrace();
}
和
@覆盖
公共无效的onActivityResult(INT申请code,INT结果code,意图数据){
super.onActivityResult(要求code,结果code,数据);
如果(要求code == 0安培;&安培;结果code == Activity.RESULT_OK){
尝试{
捆绑包= data.getExtras();
位图位图= bundle.getParcelable(数据);
img_user.setImageBitmap(位图);
}赶上(例外五){
e.printStackTrace();
}
}
}
工作非常适合我。
How to get image from gallary to set in Imageview in fragment ? onActivityResult not called in fragment..this the code i wrote in fragment
img_user.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
});
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (data != null) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContext().getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
img_user.setImageBitmap(BitmapFactory.decodeFile(picturePath));
cursor.close`enter code here`();
} else {
Toast.makeText(getActivity(), "Try Again!!", Toast.LENGTH_SHORT)
.show();
}
}
解决方案
You can do this in this way....in your main activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//call super
super.onActivityResult(requestCode, resultCode, data);
}
and inside your fragment
Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
// ******** code for crop image
i.putExtra("crop", "true");
i.putExtra("aspectX", 100);
i.putExtra("aspectY", 100);
i.putExtra("outputX", 256);
i.putExtra("outputY", 356);
try {
i.putExtra("return-data", true);
startActivityForResult(
Intent.createChooser(i, "Select Picture"), 0);
}catch (ActivityNotFoundException ex){
ex.printStackTrace();
}
and
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0 && resultCode == Activity.RESULT_OK){
try {
Bundle bundle = data.getExtras();
Bitmap bitmap = bundle.getParcelable("data");
img_user.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Works perfect for me
这篇关于从gallry获取图像中片段的ImageView设置?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文