【问题标题】:How do I display a fullscreen image when I click a Recyclerview Object imageview?单击 Recyclerview 对象图像视图时如何显示全屏图像?
【发布时间】:2019-02-26 21:21:07
【问题描述】:

这是我在适配器类中提到的 ImageViewHolder

public static class ImageTypeViewHolder extends RecyclerView.ViewHolder {
    TextView imageCard_Title,imageCard_Description;
    public ImageView imageCardView;

    public ImageTypeViewHolder(View itemView) {
        super(itemView);
        imageCard_Title=itemView.findViewById(R.id.imagecard_title);
        imageCard_Description=itemView.findViewById(R.id.imagecard_description);
        imageCardView=itemView.findViewById(R.id.imagecard_picture);
    }
}

这是我的onBindViewHolder中写的这段代码

((ImageTypeViewHolder) viewHolder).imageCard_Title.setText(modelObject.getImageCardTitle());
((ImageTypeViewHolder) viewHolder).imageCard_Description.setText(modelObject.getImageCardDescription());
((ImageTypeViewHolder) viewHolder).imageCardView.setImageResource(modelObject.getImageCardUrl());

我想创建一个选项来创建图像视图的全屏视图,该视图是 RecyclerView 项目的一部分。

这是我要添加图像卡元素的活动中的代码段:

chatList.add(new OustChatModel(1,
            "Sample Image Card",
            R.drawable.app_icon,
            "sample description"));

我想知道我该怎么做才能添加一个允许图像卡视图以全屏视图打开的操作。

提前致谢

【问题讨论】:

标签: android android-adapter android-fullscreen


【解决方案1】:

创建全屏图像片段或活动,只需在单击时使用共享元素转换即可获得漂亮的动画全屏图像。 使用 Android SharedElementTransitions 很容易实现。

请阅读: SharedElementTransition Guide

【讨论】:

    【解决方案2】:

    在自定义适配器的情况下,您可以使用多个视图填充您的活动/片段,您可以使用接口将数据从片段传递到活动。

    我在适配器类中提供了一个接口,并定义了一个方法:

    public interface onImageClick
    { void onClickImageView(Drawable image);}
    

    在这个适配器类中定义这个接口的一个对象

    onImageClick mObject;
    

    并在适配器类的构造函数中声明它:

    mObject = (onImageClick) this.mCtx;
    

    现在,在 onBindViewHolder() 中设置一个 OnClickListener

    ((ImageTypeViewHolder) viewHolder).imageCardView.setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            mObject.onClickImageView(((ImageTypeViewHolder) viewHolder).imageCardView.getDrawable());
                        }
                    });
    

    编写在访问 Recycler 视图项的活动/片段中声明的接口方法:

    @Override
    public void onClickImageView(Drawable image) {
        //Your operation here
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 2016-03-17
      • 2015-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多