Добавление ImageButton сверху другого в Android - PullRequest
0 голосов
/ 04 сентября 2018

Я делаю галерею в своем приложении. Я успешно перечислил свои изображения и теперь добавляю кнопки обмена. Вместо того, чтобы направлять пользователя в другую форму, я пытаюсь показать кнопки «Поделиться» над моим изображением. Для распечатки и публикации мне нужно создать и добавить динамический ImageButtons. Но когда я пытаюсь добавить кнопки общего доступа , они отображаются в неправильном месте. Вот мой код:

LinearLayout ll = (LinearLayout) findViewById(R.id.llGallery);
for (int i = 0; i < jsonArray.length(); i++) {
    final JSONObject jsonObject = jsonArray.getJSONObject(i);
    final String Photo= jsonObject.getString("PhotoLink");

    // PhotoDetails into another view
    View.OnClickListener cPhotoDetails= new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(GalleryDetailsActivity.this,
                    GalleryPhotoDetails.class);
            intent.putExtra("Image", Photo);
            startActivity(intent);
        }
    };

    View.OnClickListener cShare= new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            try {
                File myFile = new File(fotograf);
                MimeTypeMap mime = MimeTypeMap.getSingleton();
                String ext = myFile.getName().substring(myFile.getName().lastIndexOf(".") + 1);
                String type = mime.getMimeTypeFromExtension(ext);
                Intent sharingIntent = new Intent("android.intent.action.SEND");
                sharingIntent.setType(type);
                sharingIntent.putExtra("android.intent.extra.STREAM", Uri.fromFile(myFile));
                startActivity(Intent.createChooser(sharingIntent, "Share with"));
            } catch (Exception e) {
                //  Toast.makeText(getBaseContext(), e.getMessage(), Toast.LENGTH_SHORT).show();
            }
        }
    };

    RelativeLayout rel = new RelativeLayout(context);
    rel.setGravity(Gravity.CENTER_VERTICAL);

    ImageButton img = new ImageButton(context);
    img.setClickable(true);
    img.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
    Glide.with(context).load(Photo).into(img);
    img.setOnClickListener(cPhotoDetails);
    rel.addView(img);

    ImageButton share = new ImageButton(context);
    share.setClickable(true);
    share.setScaleType(ImageView.ScaleType.FIT_XY);
    Glide.with(context).load(R.drawable.btn_share).into(share);
    share.setOnClickListener(cShare);
    rel.addView(share);

    ll.addView(rel);
}

Gallery

1 Ответ

0 голосов
/ 04 сентября 2018
RelativeLayout rel = new RelativeLayout(context);
        rel.setGravity(Gravity.CENTER_VERTICAL);

        ImageView img = new ImageView(context);
        img.setClickable(true);
        img.setScaleType(ImageView.ScaleType.FIT_XY);
        Glide.with(context).load(Photo).into(img);
        img.setOnClickListener(cPhotoDetails);
        rel.addView(img);

        ImageButton share = new ImageButton(context);
        share.setClickable(true);
        share.setScaleType(ImageView.ScaleType.FIT_XY);
        Glide.with(context).load(R.drawable.btn_share).into(share);
        share.setOnClickListener(cShare);
        rel.addView(share);

        ll.addView(rel);
...