Отображение разных вариантов выбора файлов на разных изображениях - PullRequest
0 голосов
/ 21 января 2020

У меня есть активность с 5 ImageViews. Я установил на слушателей щелчка для всех этих представлений. При щелчке по представлению изображения открывается средство выбора файлов, и после выбора изображения оно должно отображаться в представлении изображения, которое было первоначально нажато. Моя проблема в том, что я не знаю, как определить, какое изображение было нажато, и таким образом отобразить изображение в правильном виде. Ниже приведен мой код, который на данный момент может отображать выбранное изображение только в «жестко запрограммированном» виде.

public class event_creator_view_activity extends AppCompatActivity {
    private ImageView display, img1,img2,img3,img4;
    private Uri imageuri;
    private static final int PICK_IMAGE_REQUEST = 1;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event_creator_view_activity);

        display = findViewById(R.id.creator_display_image);
        img1 = findViewById(R.id.creator_img1);
        img2 = findViewById(R.id.creator_img2);
        img3 = findViewById(R.id.creator_img3);
        img4 = findViewById(R.id.creator_img4);

        display.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });
        img4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser();
            }
        });

    }


    private void openfileChooser(){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, PICK_IMAGE_REQUEST);
    }
    private String getFileExtension(Uri uri){
        ContentResolver cR = this.getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==PICK_IMAGE_REQUEST&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){
            imageuri = data.getData();
            Picasso.get().load(imageuri).into(display);
            //  uploadFile();
        }
    }
}

1 Ответ

2 голосов
/ 21 января 2020
    public class event_creator_view_activity extends AppCompatActivity {
    private ImageView display, img1,img2,img3,img4;
    private Uri imageuri;
    private static final int PICK_IMAGE_REQUEST_ONE = 1;
    private static final int PICK_IMAGE_REQUEST_TWO = 2;
    private static final int PICK_IMAGE_REQUEST_THREE = 3;
    private static final int PICK_IMAGE_REQUEST_FOUR = 4;
    private static final int PICK_IMAGE_REQUEST_FIVE = 5;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event_creator_view_activity);

        display = findViewById(R.id.creator_display_image);
        img1 = findViewById(R.id.creator_img1);
        img2 = findViewById(R.id.creator_img2);
        img3 = findViewById(R.id.creator_img3);
        img4 = findViewById(R.id.creator_img4);

        display.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_ONE);
            }
        });
        img1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_TWO);
            }
        });
        img2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_THREE);
            }
        });
        img3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_FOUR);
            }
        });
        img4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                openfileChooser(PICK_IMAGE_REQUEST_FIVE);
            }
        });

    }


    private void openfileChooser(int requestcode){
        Intent intent = new Intent();
        intent.setType("image/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(intent, requestcode);
    }
    private String getFileExtension(Uri uri){
        ContentResolver cR = this.getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType(cR.getType(uri));
    }
    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==PICK_IMAGE_REQUEST_ONE&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){
            imageuri = data.getData();
            Picasso.get().load(imageuri).into(display);
            //  uploadFile();
        }else if(requestCode==PICK_IMAGE_REQUEST_TWO&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img1);

        }else if(requestCode==PICK_IMAGE_REQUEST_THREE&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img2);

        }else if(requestCode==PICK_IMAGE_REQUEST_FOUR&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img3);

        }else if(requestCode==PICK_IMAGE_REQUEST_FIVE&&resultCode==this.RESULT_OK&&data!=null&&
                data.getData()!=null){

            imageuri = data.getData();
            Picasso.get().load(imageuri).into(img4);
        }
    }
  }

Я надеюсь, что это поможет ...

...