返回顶部
首页 > 资讯 > 精选 >RecycleView如何实现各种尺寸图片展示
  • 103
分享到

RecycleView如何实现各种尺寸图片展示

2023-06-15 07:06:15 103人浏览 独家记忆
摘要

这篇文章主要介绍RecycleView如何实现各种尺寸图片展示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!今天才发现,在一个RecycleView里可以展示各种尺寸的图片,贴图如下:代码如下:package&nbs

这篇文章主要介绍RecycleView如何实现各种尺寸图片展示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

今天才发现,在一个RecycleView里可以展示各种尺寸的图片,贴图如下:

RecycleView如何实现各种尺寸图片展示

代码如下:

package com.hisense.movienow.HorizontalView; import Android.content.Context;import android.content.Intent;import android.net.Uri;import android.support.annotation.NonNull;import android.support.v4.view.ViewCompat;import android.support.v7.widget.RecyclerView;import android.util.Log;  import java.util.List;  public class SimpleRecyclerAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {    private static final String TAG = SimpleRecyclerAdapter.class.getSimpleName();    private LayoutInflater mInflater;    private List<VideoCateContent> mListOfApps;    private int currentPosition = 0;    private Context context;    public static enum ITEM_TYPE {        ITEM_TYPE_MOVIE,        ITEM_TYPE_APP,        ITEM_TYPE_CHANNEL    }    List<MovieCateGory> movieCategories;     public SimpleRecyclerAdapter(Context context, List<VideoCateContent> mListOfApps){        mInflater = LayoutInflater.from(context);        this.context = context;        this.mListOfApps = mListOfApps;    }    public SimpleRecyclerAdapter(Context context, List<VideoCateContent> mListOfApps,List<MovieCategory> movieCategories){        mInflater = LayoutInflater.from(context);        this.context = context;        this.mListOfApps = mListOfApps;        this.movieCategories = movieCategories;    }      @SuppressWarnings("unused")    public void setData(List<VideoCateContent> mListOfApps){        this.mListOfApps = mListOfApps;    }     @Override    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {        if(viewType == ITEM_TYPE.ITEM_TYPE_MOVIE.ordinal()){            return new ViewHolder(mInflater.inflate(R.layout.movie_item_layout,parent,false));        }else if(viewType == ITEM_TYPE.ITEM_TYPE_CHANNEL.ordinal()){            return new ChanneHolder(mInflater.inflate(R.layout.search_channel_item,parent,false));        }else{            return new AppViewHolder(mInflater.inflate(R.layout.home_app_item,parent,false));        }    }     public int getItemViewType(int position){        if(mListOfApps != null){            if(mListOfApps.get(position).getType() != null && mListOfApps.get(position).getType().equalsIgnoreCase("app")){                return ITEM_TYPE.ITEM_TYPE_APP.ordinal();            }else if(mListOfApps.get(position).getType() != null && mListOfApps.get(position).getType().equals("Channel")){                return ITEM_TYPE.ITEM_TYPE_CHANNEL.ordinal();            }else {                return ITEM_TYPE.ITEM_TYPE_MOVIE.ordinal();            }        }else{            return ITEM_TYPE.ITEM_TYPE_MOVIE.ordinal();        }    }      @Override    public void onBindViewHolder(final RecyclerView.ViewHolder holder, final int position) {        final VideoCateContent videoCateContent = mListOfApps.get(position);        if(holder instanceof ViewHolder){            Glide.with(context).load(videoCateContent.getPoster()).into(((ViewHolder)holder).mImageView);            ((ViewHolder)holder).mTextView.setText(videoCateContent.getTitle());            ViewGroup.LayoutParams params = ((ViewHolder)holder).mImageView.getLayoutParams();            ViewGroup.LayoutParams txtParams = ((ViewHolder)holder).mTextView.getLayoutParams();            if(videoCateContent.getPoster_type() == 0){//竖海报                params.width = 166;                txtParams.width = 166;            }else{                params.width = 444;                txtParams.width = 444;//                RecyclerView.ItemDecoration itemDecoration = ((RecyclerView)holder.itemView.getParent()).getItemDecorationAt(position);             }            if(videoCateContent.getIs_new() == 1){                ((ViewHolder)holder).newImage.setVisibility(View.VISIBLE);            }else{                ((ViewHolder)holder).newImage.setVisibility(View.GONE);            }             ((ViewHolder)holder).mImageView.setLayoutParams(params);            ((ViewHolder)holder).mTextView.setLayoutParams(txtParams);            holder.itemView.setOnFocusChangeListener(new View.OnFocusChangeListener() {                @Override                public void onFocusChange(View v, boolean hasFocus) {                    if (hasFocus) {                        currentPosition = (int) holder.itemView.getTag();                        ViewCompat.animate(holder.itemView).scaleX(1.10f).scaleY(1.10f).start();                         int bigPostion = 0;                        if(movieCategories != null && movieCategories.size() != 0){                            bigPostion = getCurrentIndex();                        }                        mOnItemSelectListener.onItemSelect(holder.itemView, position,bigPostion);                        ((ViewHolder)holder).mImageView.setBorderColor(context.getResources().getColor(R.color.white),context.getResources().getColor(R.color.black),context.getResources().getColor(R.color.app_text_color));                        ((ViewHolder)holder).mTextView.setSelected(true);                        ((ViewHolder)holder).mTextView.setTextColor(context.getResources().getColor(R.color.white));                        ((ViewHolder)holder).newImage.setPadding(3,3,0,0);                     } else {                        int bigPostion = 0;                        if(movieCategories != null && movieCategories.size() != 0){                            bigPostion = getCurrentIndex();                        }                        mOnItemNoSelectListener.onItemNoSelect(holder.itemView,position,bigPostion);                        ViewCompat.animate(holder.itemView).scaleX(1.0f).scaleY(1.0f).start();                        ((ViewHolder)holder).mImageView.setBorderColor(context.getResources().getColor(R.color.trans),context.getResources().getColor(R.color.trans),context.getResources().getColor(R.color.trans));                        ((ViewHolder)holder).mTextView.setSelected(false);                        ((ViewHolder)holder).mTextView.setTextColor(context.getResources().getColor(R.color.title_color));                        ((ViewHolder)holder).newImage.setPadding(0,0,0,0);                    }                }            });         }else if(holder instanceof AppViewHolder){            Glide.with(context).load(videoCateContent.getPoster()).into(((AppViewHolder)holder).mAppImageView);            ((AppViewHolder)holder).tv_appName.setText(videoCateContent.getTitle());            holder.itemView.setOnFocusChangeListener(new View.OnFocusChangeListener() {                @Override                public void onFocusChange(View v, boolean hasFocus) {                    if (hasFocus) {                        currentPosition = (int) holder.itemView.getTag();                        ViewCompat.animate(holder.itemView).scaleX(1.10f).scaleY(1.10f).start();                                               int bigPostion = 0;                        if(movieCategories != null && movieCategories.size() != 0){                            bigPostion = getCurrentIndex();                        }                        mOnItemSelectListener.onItemSelect(holder.itemView, position,bigPostion);                        ((AppViewHolder)holder).tv_appName.setVisibility(View.VISIBLE);                        ((AppViewHolder)holder).mAppImageView.setBorderColor(context.getResources().getColor(R.color.white),context.getResources().getColor(R.color.black),context.getResources().getColor(R.color.app_text_color));                    } else {                        int bigPostion = 0;                        if(movieCategories != null && movieCategories.size() != 0){                            bigPostion = getCurrentIndex();                        }                        mOnItemNoSelectListener.onItemNoSelect(holder.itemView,position,bigPostion);                        ViewCompat.animate(holder.itemView).scaleX(1.0f).scaleY(1.0f).start();                        ((AppViewHolder)holder).tv_appName.setVisibility(View.GONE);                        ((AppViewHolder)holder).mAppImageView.setBorderColor(context.getResources().getColor(R.color.trans),context.getResources().getColor(R.color.trans),context.getResources().getColor(R.color.trans));                    }                }            });        }else if(holder instanceof ChanneHolder){            Glide.with(context).load(videoCateContent.getPoster()).into(((ChanneHolder)holder).mChannelImg);            ((ChanneHolder)holder).tv_channelName.setText(videoCateContent.getTitle());            holder.itemView.setOnFocusChangeListener(new View.OnFocusChangeListener() {                @Override                public void onFocusChange(View v, boolean hasFocus) {                    if (hasFocus) {                        currentPosition = (int) holder.itemView.getTag();                        ViewCompat.animate(holder.itemView).scaleX(1.10f).scaleY(1.10f).start();                                             int bigPostion = 0;                        if(movieCategories != null && movieCategories.size() != 0){                            bigPostion = getCurrentIndex();                        }                        mOnItemSelectListener.onItemSelect(holder.itemView, position,bigPostion);                        ((ChanneHolder)holder).tv_channelName.setSelected(true);                        ((ChanneHolder)holder).mChannelImg.setBorderColor(context.getResources().getColor(R.color.white),context.getResources().getColor(R.color.black),context.getResources().getColor(R.color.app_text_color));                    } else {                        int bigPostion = 0;                        if(movieCategories != null && movieCategories.size() != 0){                            bigPostion = getCurrentIndex();                        }                        mOnItemNoSelectListener.onItemNoSelect(holder.itemView,position,bigPostion);                        ViewCompat.animate(holder.itemView).scaleX(1.0f).scaleY(1.0f).start();                        ((ChanneHolder)holder).tv_channelName.setSelected(false);                        ((ChanneHolder)holder).mChannelImg.setBorderColor(context.getResources().getColor(R.color.trans),context.getResources().getColor(R.color.trans),context.getResources().getColor(R.color.trans));                    }                }            });        }           // 设置itemView可以获得焦点        holder.itemView.setFocusable(true);        holder.itemView.setTag(position);          holder.itemView.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                if(!CommonUtils.getInstance(context).isNetworkConnected()){                    Toast.makeText(context,context.getResources().getString(R.string.no_net),Toast.LENGTH_SHORT).show();                    return;                }                mOnItemClickListener.onItemClick(v, position);                if(videoCateContent.getHas_detail_page() == 1){                    Intent intent = new Intent(context,DetailActivity.class);                    intent.putExtra("media_id",videoCateContent.getId());                    context.startActivity(intent);                }else if(videoCateContent.getType().equalsIgnoreCase(context.getString(R.string.App))){                     String pkgName = getPackageName(videoCateContent.getTitle());                    if(pkgName != null){                        Log.e(TAG,"pkgName======="+pkgName);//                        if(CommonUtils.getInstance(context).isInstalled(context,pkgName)){                            CommonUtils.getInstance(context).openApp((MainActivity)context,pkgName);//                        }                    }else{                        String searchStr = videoCateContent.getTitle();                        Intent intent= new Intent(Intent.ACTION_VIEW);                        intent.setData(Uri.parse("market://search?q="+searchStr));                        context.startActivity(intent);                    }                 }else{                    if(!CommonUtils.getInstance(context).isNetworkConnected()){                        Toast.makeText(context,context.getResources().getString(R.string.no_net),Toast.LENGTH_SHORT).show();                        return;                    }                    HistoryBean historyBean = new HistoryBean();                    historyBean.setWatchTime(System.currentTimeMillis());                    historyBean.setVideoInfo(videoCateContent);                    for(int i = 0; i< Constant.historyBeanList.size(); i++){                        HistoryBean bean = Constant.historyBeanList.get(i);                        if(bean.getVideoInfo().getId() == historyBean.getVideoInfo().getId()){                            Constant.historyBeanList.remove(bean);                        }                        if(Constant.historyBeanList.size() >49){                            if(i > 48){                                Constant.historyBeanList.remove(i);                            }                        }                    }                    Constant.historyBeanList.add(0,historyBean);                    SaveValue.getInstance(context).setDataList("history",Constant.historyBeanList);                     Log.e(TAG,"deep_linking="+videoCateContent.getDeep_linking());                     String deepLinking = videoCateContent.getDeep_linking();                    if(deepLinking.contains("youtube")){                        final String packageName = getPackageName("youtube");                        if(!CommonUtils.getInstance(context).isInstalled(context,packageName)){                            DialogHelper.getBaseDialogWithTextAndTitle("",context,"",new View.OnClickListener(){                                @Override                                public void onClick(View v) {                                    Intent searchIntent= new Intent(Intent.ACTION_VIEW);                                    searchIntent.setData(Uri.parse("market://search?q="+packageName));                                    context.startActivity(searchIntent);                                }                            },new View.OnClickListener(){                                 @Override                                public void onClick(View v) {                                 }                            } ).show();                            return;                        }                        String[] param = deepLinking.split("&");                        Intent WEBIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https:/    public String getPackageName(String title){        Log.e(TAG,"title="+title.substring(0,4));        for(int i=0;i<Constant.packageNames.length;i++){            String packageName = Constant.packageNames[i];            if(packageName.contains(title.substring(0,4).toLowerCase())){                return packageName;            }        }        return null;    }     @Override    public int getItemCount() {        return mListOfApps.size();    }     class ViewHolder extends RecyclerView.ViewHolder{        LinearLayout ll_movieItem;        BoundsImageView mImageView;        TextView mTextView;        ImageView newImage;         ViewHolder(View itemView) {            super(itemView);            mImageView = itemView.findViewById(R.id.movie_image);            mTextView = itemView.findViewById(R.id.movie_title);            newImage = itemView.findViewById(R.id.iv_newFlag);        }    }     class AppViewHolder extends RecyclerView.ViewHolder{        BoundsImageView mAppImageView;        TextView tv_appName;        AppViewHolder(View itemView) {            super(itemView);            mAppImageView = itemView.findViewById(R.id.iv_app);            tv_appName = itemView.findViewById(R.id.tv_appName);        }    }     class ChanneHolder extends RecyclerView.ViewHolder{        BoundsImageView mChannelImg;        TextView tv_channelName;         public ChanneHolder(View itemView) {            super(itemView);            mChannelImg = itemView.findViewById(R.id.iv_channel);            tv_channelName = itemView.findViewById(R.id.tv_channelName);        }    }     private OnItemSelectListener mOnItemSelectListener;    private OnItemClickListener mOnItemClickListener;    private OnItemLonGClickListener mOnItemLongClickListener;    private OnItemKeyListener mOnItemKeyListener;    private OnItemNoSelectListener mOnItemNoSelectListener;     public interface OnItemSelectListener {        void onItemSelect(View view, int position,int bigPosition);    }     public interface OnItemClickListener {        void onItemClick(View view, int position);    }     public interface OnItemLongClickListener {        void onItemLongClick(View view, int position);    }     public interface OnItemKeyListener {        void OnItemKey(View view, int keyCode, KeyEvent event, int position);    }     public interface OnItemNoSelectListener {        void onItemNoSelect(View view, int position,int bigPosition);    }    public void setOnItemNoSelectListener(OnItemNoSelectListener listener){        mOnItemNoSelectListener = listener;    }     public void setOnItemSelectListener(OnItemSelectListener listener){        mOnItemSelectListener = listener;    }     public void setOnItemClickListener(OnItemClickListener mOnItemClickListener) {        this.mOnItemClickListener = mOnItemClickListener;    }     public void setOnItemLongClickListener(OnItemLongClickListener mOnItemLongClickListener) {        this.mOnItemLongClickListener = mOnItemLongClickListener;    }     public void setOnItemKeyListener(OnItemKeyListener mOnItemKeyListener) {        this.mOnItemKeyListener = mOnItemKeyListener;    }     public int getCurrentIndex(){        for(int i=0;i<movieCategories.size();i++){            MovieCategory movieCategory = movieCategories.get(i);            if(movieCategory.getMovieItemList().equals(mListOfApps)){                return i;            }        }        return 0;    } }

另外一种显示方式:

RecycleView如何实现各种尺寸图片展示

以上是“RecycleView如何实现各种尺寸图片展示”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网精选频道!

--结束END--

本文标题: RecycleView如何实现各种尺寸图片展示

本文链接: https://lsjlt.com/news/278615.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • RecycleView实现各种尺寸图片展示
    本文实例为大家分享了RecycleView实现各种尺寸图片展示的具体代码,供大家参考,具体内容如下 今天才发现,在一个RecycleView里可以展示各种尺寸的图片,贴图如下: 代...
    99+
    2024-04-02
  • RecycleView如何实现各种尺寸图片展示
    这篇文章主要介绍RecycleView如何实现各种尺寸图片展示,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!今天才发现,在一个RecycleView里可以展示各种尺寸的图片,贴图如下:代码如下:package&nbs...
    99+
    2023-06-15
  • 基于Python如何实现批量缩放图片尺寸
    今天小编给大家分享一下基于Python如何实现批量缩放图片尺寸的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。方法一在 Pil...
    99+
    2023-07-05
  • 如何实现在MAC中用Shell脚本批量裁剪各种尺寸的App图标
    本篇内容主要讲解“如何实现在MAC中用Shell脚本批量裁剪各种尺寸的App图标”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何实现在MAC中用Shell脚本批量裁剪各种尺寸的App图标”吧!...
    99+
    2023-06-09
  • 小程序如何做自适应各种手机尺寸
    这篇“小程序如何做自适应各种手机尺寸”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“小程序如何做自适应各种手机尺寸”文章吧。解...
    99+
    2023-06-26
  • Java修改图片大小尺寸的简单实现
    目录方式一:使用Image.getScaledInstance测试方式二:使用Thumbnailator测试方式一:使用Image.getScaledInstance 使用jdk的a...
    99+
    2024-04-02
  • 小程序转发图片尺寸如何设置
    本篇内容介绍了“小程序转发图片尺寸如何设置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 创建Canvas画布前端要裁剪图片,我们首先就...
    99+
    2023-06-26
  • win7如何查看图片尺寸大小?图片像素怎么看?
        电脑上存储了越来多的照片,有的照片尺寸太大。在处理照片时候需要经常查看文件的大小尺寸,分辨率什么的。一张张查看属性非常的麻烦,其实直接通过修改文件夹资源管理器显示方法即可查看,那么w...
    99+
    2023-06-09
    win7 图片 尺寸 大小 图片尺寸 像素
  • 基于Python实现批量缩放图片(视频)尺寸
    目录方法一方法二方法三方法四(FFmpeg)方法一 在 Pillow 中,resize() 方法会强制将图片缩放到指定的大小,可能会导致图片变形或失真;而 thumbnail() 方...
    99+
    2023-03-24
    Python缩放图片尺寸 Python缩放视频尺寸 Python缩放尺寸
  • java实现上传图片尺寸修改和质量压缩
    本文实例为大家分享了java实现上传图片尺寸修改和质量压缩的具体代码,供大家参考,具体内容如下 package com.zity.frame.util;     import co...
    99+
    2024-04-02
  • Python技巧之实现批量统一图片格式和尺寸
    目录前言Python模块之Image的应用示例图片批量转换和尺寸调整代码示例前言 大家在工作的时候是不是都会接触到很多的图片,为了满足不同的需求: 兼容性:不同设备和应用程序可能支持...
    99+
    2023-05-19
    Python转换图片格式 Python统一图片尺寸 Python图片格式 Python图片尺寸 Python图片
  • vue+ bootstrap如何实现图片上传图片展示功能
    这篇文章给大家分享的是有关vue+ bootstrap如何实现图片上传图片展示功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。效果图如下所示:html..... ..........
    99+
    2024-04-02
  • js如何实现3D图片展示效果
    这篇文章给大家分享的是有关js如何实现3D图片展示效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。点击左上角的按钮前后切换效果图:代码如下:<!doctype ...
    99+
    2024-04-02
  • 微信小程序中如何实现本地图片按照屏幕尺寸处理
    这篇文章主要介绍了微信小程序中如何实现本地图片按照屏幕尺寸处理,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。微信小程序 本地图片按照屏幕尺寸...
    99+
    2024-04-02
  • Python实现更改图片尺寸大小的方法(基于Pillow包)
    本文实例讲述了Python实现更改图片尺寸大小的方法。分享给大家供大家参考,具体如下: 1、PIL包推荐Pillow 。 2、源码: #encoding=utf-8 #author: walker #d...
    99+
    2022-06-04
    图片尺寸 大小 方法
  • java 如何将图片按照原尺寸比例存入word中
    java 图片按照原尺寸比例存入word 在使用poi往word里面插入图片时可以使用 XWPFParagraph.insertNewRun(i).addPicture(Input...
    99+
    2024-04-02
  • 如何通过CSS3的object-fit来调整图片适配尺寸
    这篇文章主要讲解了“如何通过CSS3的object-fit来调整图片适配尺寸”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何通过CSS3的object-f...
    99+
    2024-04-02
  • 如何在java中使用ImageReader和BufferedImage获取图片的尺寸
    如何在java中使用ImageReader和BufferedImage获取图片的尺寸?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。ImageReader 对象通常由特定格式的服...
    99+
    2023-05-30
  • js如何实现3D图片环展示效果
    这篇文章给大家分享的是有关js如何实现3D图片环展示效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。可对整体进行拖拽效果图:代码如下:<!DOCTYPE htm...
    99+
    2024-04-02
  • 小程序如何实现全屏展示图片
    这篇文章主要介绍“小程序如何实现全屏展示图片”,在日常操作中,相信很多人在小程序如何实现全屏展示图片问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”小程序如何实现全屏展示图片”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作