Кликабельные изображения в HorizontalScrollView

введите здесь описание изображения

Я создаю галерею с помощью HorizontalScrollView и хочу щелкнуть изображение в HorizontalScrollView.

Вот мой код:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK){
            if(data.getClipData() != null){
                int totalItemsSelected = data.getClipData().getItemCount();
                linearLayout = (LinearLayout) findViewById(R.id.linear);
                for(int i = 0; i < totalItemsSelected; i++){
                    Uri fileUri = data.getClipData().getItemAt(i).getUri();
                    ImageView image = new ImageView(this);
                    image.setAdjustViewBounds(true);
                    image.setImageURI(fileUri);
                    linearLayout.addView(image);
             }
        }
    }
}

person Annisha    schedule 05.02.2018    source источник
comment
попробуйте это и stackoverflow.com/a/19823734/8089770 используйте переключатель case для каждого элемента   -  person Vidhi Dave    schedule 05.02.2018


Ответы (3)


Привет, используйте приведенный ниже код, чтобы implement кликнуть по событию ImageView:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK){
        if(data.getClipData() != null){
            int totalItemsSelected = data.getClipData().getItemCount();
            linearLayout = (LinearLayout) findViewById(R.id.linear);
            for(int i = 0; i < totalItemsSelected; i++){
                Uri fileUri = data.getClipData().getItemAt(i).getUri();
                ImageView image = new ImageView(this);
                image.setAdjustViewBounds(true);
                image.setImageURI(fileUri);

                //click event
                image.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        Log.e(TAG,"Selected File URI : "+fileUri); 
                    }
                });

                linearLayout.addView(image);
            }
        }
    }
} 
person Surender Kumar    schedule 05.02.2018

Установите onClickListener в цикле. Таким образом, у каждого ImageView будет свой собственный прослушиватель кликов. Перед добавлением изображения в layout.

image.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        // do ur work here
    }
})

Спасибо

person Ashu Kumar    schedule 05.02.2018
comment
этот код позволит вам сделать щелчок вручную. мы не вызываем onClick автоматически здесь проблематично - person Ashu Kumar; 05.02.2018
comment
ты имел ввиду fileUri ? - person Ashu Kumar; 05.02.2018

См. ниже:

for(int i = 0; i < totalItemsSelected; i++){
    Uri fileUri = data.getClipData().getItemAt(i).getUri();
    ImageView image = new ImageView(this);
    image.setAdjustViewBounds(true);
    image.setImageURI(fileUri);

    image.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            //what you want to do
        }
    });

    linearLayout.addView(image);
}
person SonVi    schedule 05.02.2018