文章目录

  • RecylerView
    • 放置界面控件
    • 创建Item界面
    • 编写页面交互代码
  • ListView
    • 放置界面控件
    • 创建Item界面
    • 编写页面交互代码

RecylerView

放置界面控件

放置一个RecylerView控件,用于显示一个列表。

<androidx.recyclerview.widget.RecyclerViewandroid:id="@+id/recyclerView"android:layout_width="match_parent"android:layout_height="wrap_content">
</androidx.recyclerview.widget.RecyclerView>

创建Item界面

每一个Item上都显示动物的照片、名称和信息

<ImageViewandroid:id="@+id/iv_icon"android:layout_margin="10dp"android:src="@mipmap/ic_launcher"android:layout_width="100dp"android:layout_height="100dp">
</ImageView>
<TextViewandroid:id="@+id/tv_title"android:layout_below="@id/iv_icon"android:textSize="25dp"android:layout_centerHorizontal="true"android:text="text1"android:layout_width="wrap_content"android:layout_height="wrap_content">
</TextView>
<TextViewandroid:id="@+id/tv_info"android:layout_below="@id/tv_title"android:layout_margin="10dp"android:text="text1"android:maxLines="5"android:ellipsize="end"android:layout_width="wrap_content"android:layout_height="wrap_content">
</TextView>

编写页面交互代码

在MainActivity中通过逻辑代码对RecyclerView控件进行数据适配并将数据显示到列表界面上

public class MainActivity extends AppCompatActivity {private RecyclerView recyclerView;private String[] names = { "小猫", "哈士奇", "小黄鸭","小鹿","老虎"};private int[]  icons= { R.drawable.cat,R.drawable.siberiankusky,R.drawable.yellowduck,R.drawable.fawn, R.drawable.tiger};private String[] introduces = {"猫,属于猫科动物,分家猫、野猫,是全世界家庭中较为广泛的宠物。","西伯利亚雪橇犬,常见别名哈士奇,昵称为二哈。","鸭的体型相对较小,颈短,一些属的嘴要大些。腿位于身体后方,因而步态蹒跚。","鹿科是哺乳纲偶蹄目下的一科动物。体型大小不等,为有角的反刍类。","虎,大型猫科动物;毛色浅黄或棕黄色,满有黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著;四肢健壮有力;尾粗长,具黑色环纹,尾端黑色。"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);recyclerView=findViewById(R.id.recyclerView);recyclerView.setLayoutManager(new GridLayoutManager(MainActivity.this,2));recyclerView.setAdapter(new MyAdapter());}class MyAdapter extends RecyclerView.Adapter<MyAdapter.MyHolder>{@NonNull@Override//获取itemView的视图对象,并把视图对象传递给viewholderpublic MyHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {View v=View.inflate(MainActivity.this,R.layout.item_layout,null);MyHolder myHolder=new MyHolder(v);return myHolder;}@Override//将各类值绑定给holder对象public void onBindViewHolder(@NonNull MyHolder holder, int position) {holder.iv_icon.setImageResource(icons[position]);holder.tv_info.setText(introduces[position]);holder.tv_title.setText(names[position]);}@Overridepublic int getItemCount() {return names.length;}class MyHolder extends RecyclerView.ViewHolder{private TextView tv_title,tv_info;private ImageView iv_icon;public MyHolder(@NonNull View itemView) {super(itemView);tv_title=itemView.findViewById(R.id.tv_title);tv_info=itemView.findViewById(R.id.tv_info);iv_icon=itemView.findViewById(R.id.iv_icon);}}}
}

ListView

放置界面控件

<ListViewandroid:id="@+id/lv"android:layout_width="match_parent"android:layout_height="wrap_content"android:listSelector="@color/C_group_2">
</ListView>

创建Item界面

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:padding="20dp"android:layout_width="wrap_content"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/iv_icon"android:layout_margin="10dp"android:src="@mipmap/ic_launcher"android:layout_width="100dp"android:layout_height="100dp"></ImageView><TextViewandroid:id="@+id/tv_title"android:layout_toRightOf="@id/iv_icon"android:layout_alignTop="@id/iv_icon"android:layout_margin="10dp"android:textSize="25dp"android:text="text1"android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView><TextViewandroid:id="@+id/tv_info"android:layout_toRightOf="@id/iv_icon"android:layout_below="@id/tv_title"android:layout_margin="10dp"android:text="text1"android:maxLines="2"android:ellipsize="end"android:layout_width="match_parent"android:layout_height="wrap_content"></TextView>
</RelativeLayout>

编写页面交互代码

public class MainActivity extends AppCompatActivity {private ListView listView;private String[] names = { "小猫", "哈士奇", "小黄鸭","小鹿","老虎"};private int[]  icons= { R.drawable.cat,R.drawable.siberiankusky,R.drawable.yellowduck,R.drawable.fawn, R.drawable.tiger};private String[] introduces = {"猫,属于猫科动物,分家猫、野猫,是全世界家庭中较为广泛的宠物。","西伯利亚雪橇犬,常见别名哈士奇,昵称为二哈。","鸭的体型相对较小,颈短,一些属的嘴要大些。腿位于身体后方,因而步态蹒跚。","鹿科是哺乳纲偶蹄目下的一科动物。体型大小不等,为有角的反刍类。","虎,大型猫科动物;毛色浅黄或棕黄色,满有黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著;四肢健壮有力;尾粗长,具黑色环纹,尾端黑色。"};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);listView=findViewById(R.id.lv);listView.setAdapter(new MyAdapter());}class MyAdapter extends BaseAdapter {@Overridepublic int getCount() {return names.length;}@Overridepublic Object getItem(int position) {return names[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {ViewHolder viewHolder=null;if (convertView==null){convertView=View.inflate(MainActivity.this,R.layout.item_layout,null);viewHolder=new ViewHolder();viewHolder.iv_icon=convertView.findViewById(R.id.iv_icon);viewHolder.tv_info=convertView.findViewById(R.id.tv_info);viewHolder.tv_title=convertView.findViewById(R.id.tv_title);convertView.setTag(viewHolder);}else {viewHolder=(ViewHolder) convertView.getTag();}viewHolder.tv_title.setText(names[position]);viewHolder.tv_info.setText(introduces[position]);viewHolder.iv_icon.setImageResource(icons[position]);return convertView;}public class ViewHolder{TextView tv_title,tv_info;ImageView iv_icon;}}
}

分别使用ListView和RecylerView显示动物图片、名称以及简介信息相关推荐

  1. 定制ListView的界面(使用自定义的列表项布局,一边显示水果图片,一边显示水果文字)以及ListView的点击事件

    只能显示一段文本的ListView实在是太过单调,我们现在就来对ListView的界面进行定制,让它可以显示更加丰富的内容. 首先,我们需要准备好一组水果图片,分别对应上面提供的每一种水果,待会我们要 ...

  2. Android 使用开源库StickyGridHeaders来实现带sections和headers的GridView显示本地图片效果...

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/20481185),请尊重他人的辛勤劳动成果,谢谢! 大家好! ...

  3. Android 使用ContentProvider扫描手机中的图片,仿微信显示本地图片效果

    转载请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/18730223),请尊重他人的辛勤劳动成果,谢谢! 写这篇文 ...

  4. android listview 滑动条显示_ListView详细介绍与使用

    前言介绍: 关于 ListView 我们大家都应该是非常的熟悉了,在 Android 开发中是经常用到的,今天就再来回顾一下,ListView 的使用方法,和一些需要优化注意的地方,还有日常开发过程中 ...

  5. Android 高效显示Bitmap图片

    Android 高效显示Bitmap图片 本文会介绍一些处理与加载Bitmap对象的常用方法,这些技术能够使得程序的UI不会被阻塞,并且可以避免程序超出内存限制.如果我们不注意这些,Bitmap会迅速 ...

  6. JEECMS的新浪图集在IE9、10不能显示大图片BUG的解决方法

    2019独角兽企业重金招聘Python工程师标准>>> 最近我给学校对外交流合作处做的网站,因为是学java开发,所以就基于JEECMS去做. 等到项目做好,差不多要 交工的时候,发 ...

  7. img 服务器上的图片不显示图片,img显示服务器图片不显示

    img显示服务器图片不显示 内容精选 换一换 您可根据需求自定义下发消息内容,例如新增场景:终端用户发送"应用魔方"时,聊天机器人自动回复该产品介绍给用户.在"ChatB ...

  8. 显示乱七八糟图片问题之解决

    今天早上在群里有网友求助说电脑程序中多出了很多乱七八糟的图片,不知道怎么回事.(具体请参阅"求助:显示乱七八糟图片解决方法征集"[url]http://starger.blog.5 ...

  9. android listview分页显示,Android应用中使用ListView来分页显示刷新的内容

    点击按钮刷新1.效果如下: 实例如下:  上图的添加数据按钮可以换成一个进度条  因为没有数据所以我加了一个按钮添加到数据库用于测试:一般在服务器拉去数据需要一定的时间,所以可以弄个进度条来提示用户: ...

最新文章

  1. 读取CRM 产品主数据所有属性的API
  2. Alpha(9/10)
  3. C++中BEGIN_MSG_MAP或者BEGIN_MESSAGE_MAP的个人理解
  4. 程序员如何成为编程高手并以此创业
  5. Spring-aop-TargetSource/ProxyFactory/DefaultAopProxyFactory
  6. SOA,RMI,RPC,SOAP,REST等名称的理解
  7. Mapbox词汇表中文文档(查找Mapbox相关的术语及其定义)
  8. Hibernate Session get()vs load()实例差异
  9. Objective-C GCD深入理解
  10. VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例
  11. java MAVEN下载的代码仓库位置 mac
  12. day14:磁盘管理df/du/fdisk/parted命令
  13. C语言考试上机操作题库(基础)(参考)
  14. 邮件服务器pop3和imap,POP3服务器和IMAP服务器
  15. 列主元消去法例题详解_列主元消去法
  16. MySQL sql语句
  17. 日本感情电影 -- 情书
  18. 硬盘分区修复和碎片整理命令
  19. 公司邮箱一般是什么邮箱?专业的电子邮件可以事半功倍
  20. 利用淘宝指数做产品数据分析

热门文章

  1. vue项目中 img标签加载图片失败,让其显示默认图片
  2. 006 ps 图片的拼合、拼接
  3. Window 10 Google Chrome无法启动更新检查(错误代码为1:0x80004005)
  4. fetch的基本使用
  5. 70后80后和90后的巨大区别
  6. 原来有这么多清北毕业生去了华为!
  7. 解决 VMware 中鼠标灵敏度过高,难以控制的问题
  8. 王兴渐成“IPO收割机”
  9. mysql 大对象_Oracle 4个大对象(lobs)数据类型介绍
  10. win10文件服务器ssd当缓存盘,为磁盘启用写入缓存,提升Win10系统性能