Android 从onActivityResult到oncreate通过数组获取图像
我有一个全局变量byte[]byteArr我希望在单击图像时保存bytearray的值,并在TakeImage(img_视图)之后设置值ed[finalI].setText(bytearray)中的strong>方法强> 下面的代码高于onCreateAndroid 从onActivityResult到oncreate通过数组获取图像,android,android-activity,oncreate,onactivityresult,Android,Android Activity,Oncreate,Onactivityresult,我有一个全局变量byte[]byteArr我希望在单击图像时保存bytearray的值,并在TakeImage(img_视图)之后设置值方法 下面的代码高于onCreate private Bitmap global_bitmap; 下面的代码位于创建时弹出的“库”选项中 final XEditText ed[] = new XEditText[arraylist.size()]; final XImageView xImageViews[] = new XImageView[arraylis
private Bitmap global_bitmap;
下面的代码位于创建时弹出的“库”选项中
final XEditText ed[] = new XEditText[arraylist.size()];
final XImageView xImageViews[] = new XImageView[arraylist.size()];
for (int i = 0; i < arraylist.size(); i++) {
ed[i] = new XEditText(this);
xImageViews[i] = new XImageView(this);
ed[i].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
TakeImage(img_view);
xImageViews[finalI1].setImageBitmap(global_bitmap);
ed[finalI1].setText(global_bitmap.toString());
}
});
}
在此之后,还有如下的onActivityResult方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
Uri uri = data.getData();
try {
img_view.setVisibility(View.VISIBLE);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArr = stream.toByteArray();
Path_Image_model path_image_model = new Path_Image_model();
path_image_model.setPath(byteArr.toString());
Log.d(TAG, "===byteArr_PickImage==" + byteArr);
img_view.setImageBitmap(bitmap);
global_bitmap=bitmap;
resizedFile = new File(uri.getPath());
Log.d(TAG, "===FileImage==" + resizedFile);
} catch (IOException e) {
e.printStackTrace();
}
}
public Uri getImageUri(Context inContext, Bitmap inImage) {
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
String path = MediaStore.Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
return Uri.parse(path);
}
public String getRealPathFromURI(Uri uri) {
Cursor cursor = getContentResolver().query(uri, null, null, null, null);
cursor.moveToFirst();
int idx = cursor.getColumnIndex(MediaStore.Images.ImageColumns.DATA);
return cursor.getString(idx);
}
第一次显示空值,第二次显示前一个值,我希望每个img_btn上的Gallery中选定图像视图的真实全局位图值。设置单击Listener单击ActivityResultMethod:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
Uri uri = data.getData();
try {
img_view.setVisibility(View.VISIBLE);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArr = stream.toByteArray();
Path_Image_model path_image_model = new Path_Image_model();
path_image_model.setPath(byteArr.toString());
Log.d(TAG, "===byteArr_PickImage==" + byteArr);
img_view.setImageBitmap(bitmap);
ed[finalI].setText(byteArr);
resizedFile = new File(uri.getPath());
Log.d(TAG, "===FileImage==" + resizedFile);
} catch (IOException e) {
e.printStackTrace();
}
}
请更新ActivityResultMethod`ed[finalI].setText(bytearray);`将位于onActivityResult()的
内。
@TejasPandya我正在oncreate1中创建动态edittext。如果您正在创建edittext运行时或xml,这不会是问题。2) 我把edittext和bytearray的settext搞混了。你到底想做什么?@TejasPandya我想得到bytearray,或者说从gallery到edittext的选定图像的路径,所以你想在edittext中设置图像的路径?
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE) {
Uri uri = data.getData();
try {
img_view.setVisibility(View.VISIBLE);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, stream);
byteArr = stream.toByteArray();
Path_Image_model path_image_model = new Path_Image_model();
path_image_model.setPath(byteArr.toString());
Log.d(TAG, "===byteArr_PickImage==" + byteArr);
img_view.setImageBitmap(bitmap);
ed[finalI].setText(byteArr);
resizedFile = new File(uri.getPath());
Log.d(TAG, "===FileImage==" + resizedFile);
} catch (IOException e) {
e.printStackTrace();
}
}