Как переустановить просмотр изображения, выбрать открытую камеру, получить изображение и выбрать фотографию из фотогалереи? - PullRequest
0 голосов
/ 03 марта 2020

просто нажмите на изображение в режиме просмотра макулатуры, и я хотел бы выбрать изображение из фотогалереи. Я также могу посмотреть изображение, которое я добавил, но не смог добавить его в адаптер для макулатуры.

Мой код в этом упражнении я хочу сделать это, если щелкнуть изображение в представлении реселлера. Как я могу это сделать ?

private void showPictureDialog() {
    AlertDialog.Builder pictureDialog = new AlertDialog.Builder(this);
    pictureDialog.setTitle(R.string.selectAction);
    String[] pictureDialogItems = {
            "Galeriden fotağraf seçiniz",
            "Kameradan fotağraf seçiniz"};
    pictureDialog.setItems(pictureDialogItems,
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    switch (which) {
                        case 0:
                            choosePhotoFromGallary();
                            break;
                        case 1:
                            takePhotoFromCamera();
                            break;
                    }
                }
            });
    pictureDialog.show();
}

void choosePhotoFromGallary() {
    Intent galleryIntent = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    startActivityForResult(galleryIntent, 1);
}

void takePhotoFromCamera() {
    Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    startActivityForResult(intent, 2);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {

    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == this.RESULT_CANCELED) {
        return;
    }
    if (requestCode == 1) {
        if (data != null) {
            Uri contentURI = data.getData();
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), contentURI);
                Toast.makeText(MainActivity.this, R.string.imageSaved, Toast.LENGTH_SHORT).show();
                imgview.setImageBitmap(bitmap);
                mycontrol = true;

            } catch (IOException e) {
                e.printStackTrace();
                Toast.makeText(MainActivity.this, R.string.fail, Toast.LENGTH_SHORT).show();
            }
        }

    } else if (requestCode == 2) {
        Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
        imgview.setImageBitmap(thumbnail);
        saveImage(thumbnail);
        Toast.makeText(MainActivity.this, R.string.imageSaved, Toast.LENGTH_SHORT).show();
        mycontrol = true;
    }
}

Ответы [ 2 ]

0 голосов
/ 03 марта 2020

Вы можете создать интерфейс в своем адаптере для элементов, щелкните.

Например:

interface ImageClickListener{
      void onImageClicked();
}

И в методе держателя вида адаптера, как показано ниже.

public static class ItemViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {

        private YourModel mItem;
        private ItemClickListener mItemListener;

          public ItemViewHolder(View itemView, ItemClickListener listener) {
               super(itemView);
               mItemListener = listener;
               itemView.setOnClickListener(this);
      }

        @Override
    public void onClick(View v) {



        switch (v.getId()) {
            case R.id.view_id:
                mItemListener.onItemClicked(); // You can send any field or model as a param here.
                break;

            default:
                break;
        }

    }

 }

После этого вы можете реализовать этот интерфейс в своей деятельности / фрагменте и написать код для события щелчка, например:

 @Override
    public void onImageClicked() {
        //showPictureDialog();
    }
0 голосов
/ 03 марта 2020

Не могли бы вы добавить сюда фрагмент кода файла класса Adapter?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...