显示来自 android 台设备的两张图片
Displaying two images from android device
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_adharFrontUploadId:
pickImage();
loadAdharFrontImage();
break;
case btn_adharBackUploadId:
pickImage();
loadAdharBackImage();
break;
}
}
它显示来自设备的两个不同图像。我写的方法如下
private void loadAdharBackImage() {
new Thread() {
public void run() {
while (i++ < 1000) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
iv_adharBack.setImageBitmap(decodedWebP);
}
});
sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
private void loadAdharFrontImage() {
new Thread() {
public void run() {
while (i++ < 1000) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
iv_adharFront.setImageBitmap(decodedWebP);
}
});
sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
当我通过点击第一个按钮 select 第一张图片时,它会像往常一样加载第一个图像视图,但是当我点击第二个按钮时,它会加载第一个 selected 图片第二个 imageview 瞬间,在 select 第二个图像上,第一个 imageview 也更改为第二个 selected image.Please 给我一个解决方案。我对 android 和编程还很陌生。任何帮助将不胜感激
感谢大家的支持...终于得到答案了。无需使用我的问题中提到的可运行。在这里我可以编写代码来为不同的 imageViews 获取图像。再次感谢
@Override
public void onClick(View v) {
switch (v.getId()) {
case btn_applAdharFrontUploadId:
pickImage(1);
break;
case btn_applAdharBackUploadId:
pickImage(2);
break;
}
}
在这里我可以使用相同的代码来压缩我的图像并将它们加载到 imageViews
private void pickImage(int i) {
Intent pickImageIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickImageIntent.setType("image/*");
startActivityForResult(Intent.createChooser(pickImageIntent, "Select Picture"), i);
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
assert data != null;
Uri imageUri = data.getData();
InputStream is = null;
try {
assert imageUri != null;
is = getContentResolver().openInputStream(imageUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
assert is != null;
BufferedInputStream bufferedInputStream = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(bufferedInputStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.WEBP, 60, out);
Bitmap decodedImage = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
switch (requestCode){
case 1:
iv_ApplAdharFront.setImageBitmap(decodedImage);
break;
case 2:
iv_ApplAdharBack.setImageBitmap(decodedImage);
break;
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btn_adharFrontUploadId:
pickImage();
loadAdharFrontImage();
break;
case btn_adharBackUploadId:
pickImage();
loadAdharBackImage();
break;
}
}
它显示来自设备的两个不同图像。我写的方法如下
private void loadAdharBackImage() {
new Thread() {
public void run() {
while (i++ < 1000) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
iv_adharBack.setImageBitmap(decodedWebP);
}
});
sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
private void loadAdharFrontImage() {
new Thread() {
public void run() {
while (i++ < 1000) {
try {
runOnUiThread(new Runnable() {
@Override
public void run() {
iv_adharFront.setImageBitmap(decodedWebP);
}
});
sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}.start();
}
当我通过点击第一个按钮 select 第一张图片时,它会像往常一样加载第一个图像视图,但是当我点击第二个按钮时,它会加载第一个 selected 图片第二个 imageview 瞬间,在 select 第二个图像上,第一个 imageview 也更改为第二个 selected image.Please 给我一个解决方案。我对 android 和编程还很陌生。任何帮助将不胜感激
感谢大家的支持...终于得到答案了。无需使用我的问题中提到的可运行。在这里我可以编写代码来为不同的 imageViews 获取图像。再次感谢
@Override
public void onClick(View v) {
switch (v.getId()) {
case btn_applAdharFrontUploadId:
pickImage(1);
break;
case btn_applAdharBackUploadId:
pickImage(2);
break;
}
}
在这里我可以使用相同的代码来压缩我的图像并将它们加载到 imageViews
private void pickImage(int i) {
Intent pickImageIntent = new Intent(Intent.ACTION_GET_CONTENT);
pickImageIntent.setType("image/*");
startActivityForResult(Intent.createChooser(pickImageIntent, "Select Picture"), i);
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
assert data != null;
Uri imageUri = data.getData();
InputStream is = null;
try {
assert imageUri != null;
is = getContentResolver().openInputStream(imageUri);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
assert is != null;
BufferedInputStream bufferedInputStream = new BufferedInputStream(is);
Bitmap bitmap = BitmapFactory.decodeStream(bufferedInputStream);
ByteArrayOutputStream out = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.WEBP, 60, out);
Bitmap decodedImage = BitmapFactory.decodeStream(new ByteArrayInputStream(out.toByteArray()));
switch (requestCode){
case 1:
iv_ApplAdharFront.setImageBitmap(decodedImage);
break;
case 2:
iv_ApplAdharBack.setImageBitmap(decodedImage);
break;