recycleview的基本使用以及cardview的结合

本文详细介绍了RecycleView的基本使用步骤,包括项目结构、依赖添加、item布局、适配器创建和MainActivity的实现。接着讲解了如何在RecycleView中加入图片,并展示了具体的操作步骤。最后,通过引入CardView提升UI效果,讨论了CardView的配置和应用,以创建具有阴影和圆角的卡片布局。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、recycleview的基本使用

效果图:
在这里插入图片描述
项目结构:
在这里插入图片描述
代码实现:
在这之前往项目build.gradle(app)文件中加入依赖
在这里插入图片描述
1.info_item文件中代码实现
只加入了一个textview,比较简单

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:textSize="40sp"
        android:textColor="#000"
        android:textStyle="bold"
        android:gravity="center"
        android:text="info" />

</LinearLayout>

2.activity_main文件中加入recycleview控件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#dd8855">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</LinearLayout>

3.新建Info.java文件

package com.example.recyclerviewtest;

/**
 * Created by Administrator on 2019/3/28.
 */

public class Info {

    private String content;
    
    public Info(String content){
        this.content = content;
    }
    public String getContent(){
        return content;
    }
}

4.构造适配器InfoAdapter

package com.example.recyclerviewtest;
/**
 * Created by Administrator on 2019/3/28.
 */
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import java.util.List;

public class InfoAdapter extends RecyclerView.Adapter<InfoAdapter.ViewHolder>{

    private List<Info> mInfoList;

    static class ViewHolder extends RecyclerView.ViewHolder {
        View infoView;
        TextView content;
        public ViewHolder(View view) {
            super(view);
            infoView = view;
            content = (TextView) view.findViewById(R.id.content);
        }
    }

    public InfoAdapter(List<Info> infoList) {
        mInfoList = infoList;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.info_item, parent, false);
        final ViewHolder holder = new ViewHolder(view);
        holder.infoView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int position = holder.getAdapterPosition();
                Info info = mInfoList.get(position);
                Toast.makeText(v.getContext(), "you clicked view " + info.getContent(), Toast.LENGTH_SHORT).show();
            }
        });
        return holder;
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        Info info = mInfoList.get(position);
        holder.content.setText(info.getContent());
    }

    @Override
    public int getItemCount() {
        return mInfoList.size();
    }
}

5.MainActivity代码的实现

package com.example.recyclerviewtest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity {

    private List<Info> infoList = new ArrayList<Info>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initinfo();
        RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        StaggeredGridLayoutManager layoutManager = new StaggeredGridLayoutManager(1, StaggeredGridLayoutManager.VERTICAL);
        recyclerView.setLayoutManager(layoutManager);
        InfoAdapter adapter = new InfoAdapter(infoList);
        recyclerView.setAdapter(adapter);
    }

    private void initinfo() {
        Info a1 = new Info("立春");
        infoList.add(a1);
        Info a2 = new Info("雨水");
        infoList.add(a2);
        Info a3 = new Info("惊蛰");
        infoList.add(a3);
        Info a4 = new Info("春分");
        infoList.add(a4);
        Info a5 = new Info("清明");
        infoList.add(a5);
        Info a6 = new Info("谷雨");
        infoList.add(a6);
        Info a7 = new Info("立夏");
        infoList.add(a7);
        Info a8 = new Info("小满");
        infoList.add(a8);
        Info a9 = new Info("芒种");
        infoList.add(a9);
        Info a10 = new Info("夏至");
        infoList.add(a10);
        Info a11 = new Info("小暑");
        infoList.add(a11);
        Info a12 = new Info("大暑");
        infoList.add(a12);
        Info a13 = new Info("立秋");
        infoList.add(a13);
        Info a14 = new Info("处暑");
        infoList.add(a14);
        Info a15 = new Info("白露");
        infoList.add(a15);
        Info a16 = new Info("秋分");
        infoList.add(a16);
        Info a17 = new Info("寒露");
        infoList.add(a17);
        Info a18 = new Info("霜降");
        infoList.add(a18);
        Info a19 = new Info("立冬");
        infoList.add(a19);
        Info a20 = new Info("小雪");
        infoList.add(a20);
        Info a21 = new Info("大雪");
        infoList.add(a21);
        Info a22 = new Info("冬至");
        infoList.add(a22);
        Info a23 = new Info("小寒");
        infoList.add(a23);
        Info a24 = new Info("大寒");
        infoList.add(a24);
    }
}

以上就已经实现了上面的recycleview的效果图,下面看看如何在以上项目中添加图片

二、加入图片

1.首先获取图片资源放入res/drawable文件夹下
在这里插入图片描述在这里插入图片描述
2.info_item文件中加入ImageView控件
在这里插入图片描述
3.Info文件加入以下代码
在这里插入图片描述4.适配器InfoAdapter文件修改
在这里插入图片描述5.MainActivity文件的修改
在这里插入图片描述
6.实现效果
在这里插入图片描述

三、结合cardview增强效果

1.首先在build.gradle文件中加入依赖
在这里插入图片描述2.info_item加入cardview控件(包住imageview和TextView)
在这里插入图片描述app:cardCornerRadius="12dp":控制卡片圆角化程度

app:cardElevation="8dp":控制卡片的阴影

效果:
在这里插入图片描述
更改MainActivity中代码,更改样式为两列:

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值