【问题标题】:Displaying two images from android device显示来自 android 设备的两个图像
【发布时间】:2020-03-15 16:32:26
【问题描述】:
 @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();
    }

当我通过单击第一个按钮选择第一个图像时,它照常加载第一个图像视图,但是当我单击第二个按钮时,它会立即在第二个图像视图中加载第一个选定的图像,并在选择第二个图像时,第一个图像视图也更改为第二个选定的图像。请给我一个解决方案。我对 android 和编程很陌生。任何帮助将不胜感激

【问题讨论】:

  • 为什么需要线程?根本不需要。保留 2 个单独的按钮以在单独的图像视图中选择单独的图像。
  • 如果图像视图在 pickimage() 内部,它工作得很好。但我需要多次pickimage()从设备中选择多个图像并将它们加载到不同的图像视图......它仅在通过上述线程时加载图像视图......如果是我的错误,请指出

标签: android methods imageview clicklistener


【解决方案1】:

感谢大家的支持……终于得到了答案。无需使用我的问题中提到的可运行文件。在这里,我可以编写代码来获取不同图像视图的图像。再次感谢

@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;

【讨论】:

    猜你喜欢
    • 2022-06-14
    • 2019-04-15
    • 2011-09-23
    • 2016-08-12
    • 1970-01-01
    • 2019-05-24
    • 1970-01-01
    • 1970-01-01
    • 2015-08-13
    相关资源
    最近更新 更多