我是靠谱客的博主 称心火,最近开发中收集的这篇文章主要介绍分别使用ListView和RecylerView显示动物图片、名称以及简介信息RecylerViewListView,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
文章目录
- RecylerView
- 放置界面控件
- 创建Item界面
- 编写页面交互代码
- ListView
- 放置界面控件
- 创建Item界面
- 编写页面交互代码
RecylerView
放置界面控件
放置一个RecylerView控件,用于显示一个列表。
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</androidx.recyclerview.widget.RecyclerView>
创建Item界面
每一个Item上都显示动物的照片、名称和信息
<ImageView
android:id="@+id/iv_icon"
android:layout_margin="10dp"
android:src="@mipmap/ic_launcher"
android:layout_width="100dp"
android:layout_height="100dp">
</ImageView>
<TextView
android: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>
<TextView
android: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 = {
"猫,属于猫科动物,分家猫、野猫,是全世界家庭中较为广泛的宠物。",
"西伯利亚雪橇犬,常见别名哈士奇,昵称为二哈。",
"鸭的体型相对较小,颈短,一些属的嘴要大些。腿位于身体后方,因而步态蹒跚。",
"鹿科是哺乳纲偶蹄目下的一科动物。体型大小不等,为有角的反刍类。",
"虎,大型猫科动物;毛色浅黄或棕黄色,满有黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著;四肢健壮有力;尾粗长,具黑色环纹,尾端黑色。"
};
@Override
protected 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的视图对象,并把视图对象传递给viewholder
public 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]);
}
@Override
public 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
放置界面控件
<ListView
android: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">
<ImageView
android:id="@+id/iv_icon"
android:layout_margin="10dp"
android:src="@mipmap/ic_launcher"
android:layout_width="100dp"
android:layout_height="100dp">
</ImageView>
<TextView
android: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>
<TextView
android: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 = {
"猫,属于猫科动物,分家猫、野猫,是全世界家庭中较为广泛的宠物。",
"西伯利亚雪橇犬,常见别名哈士奇,昵称为二哈。",
"鸭的体型相对较小,颈短,一些属的嘴要大些。腿位于身体后方,因而步态蹒跚。",
"鹿科是哺乳纲偶蹄目下的一科动物。体型大小不等,为有角的反刍类。",
"虎,大型猫科动物;毛色浅黄或棕黄色,满有黑色横纹;头圆、耳短,耳背面黑色,中央有一白斑甚显著;四肢健壮有力;尾粗长,具黑色环纹,尾端黑色。"
};
@Override
protected 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 {
@Override
public int getCount() {
return names.length;
}
@Override
public Object getItem(int position) {
return names[position];
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public 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显示动物图片、名称以及简介信息RecylerViewListView的全部内容,希望文章能够帮你解决分别使用ListView和RecylerView显示动物图片、名称以及简介信息RecylerViewListView所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复