CardView的简单使用
来源:互联网 发布:图像语义分割算法论文 编辑:程序博客网 时间:2024/06/04 19:21
CardView继承与FrameLayout,是一个ViewGroup。
依赖包: compile ‘com.android.support:cardview-v7:24.1.0’
特点
- 有rounded corner(圆角)和shadow(阴影)
方法说明
- card_view:cardBackgroundColor 设置背景色
- card_view:cardCornerRadius 设置圆角大小
- card_view:cardElevation 设置z轴阴影
- card_view:cardMaxElevation 设置z轴最大高度值
- card_view:cardUseCompatPadding 是否使用CompadPadding
- card_view:cardPreventCornerOverla 在xml文件中设置内边距,在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠
- card_view:contentPadding 内容的padding
- card_view:contentPaddingLeft 内容的左padding
- card_view:contentPaddingTop 内容的上padding
- card_view:contentPaddingRight 内容的右padding
- card_view:contentPaddingBottom 内容的底padding
使用情景
- 需要显示层次的内容时,可以考虑使用
- 需要显示列表和网格时,可以考虑使用
- 低版本兼容问题
当设置elevation后,低版本会自动留出空间用于显示阴影,但在android L中需要手动设置margin边距来预留空间,所以我们需要适配:分别再res下新建values,values-v21文件夹,在文件下新建dimens.xml文件。在values下的dimens设置0dp,21下根据需要设置,在布局文件中引用。
简单实用实例
1.主布局文件 activity_card_view.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" xmlns:toolbar="http://schemas.android.com/apk/res-auto" android:background="@android:color/white" android:orientation="vertical" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:layout_width="match_parent" android:background="@color/colorPrimary" toolbar:navigationIcon="?attr/homeAsUpIndicator" toolbar:title="toolbar" android:paddingTop="25dp" android:layout_height="wrap_content" /> <android.support.v7.widget.RecyclerView android:id="@+id/activity_card_view" android:layout_width="match_parent" android:background="@android:color/white" android:layout_height="match_parent" /> </LinearLayout>
2.RecyclerView的item布局item_cardview_layout.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android" xmlns:card_view="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="match_parent" card_view:cardBackgroundColor="@color/colorAccent" card_view:cardPreventCornerOverlap="true" card_view:cardUseCompatPadding="true" card_view:cardCornerRadius="5dp" android:layout_margin="@dimen/card_margin" android:foreground="?android:attr/selectableItemBackground" card_view:contentPadding="2dp" card_view:cardElevation="5dp" android:layout_height="wrap_content"> <RelativeLayout android:layout_width="match_parent" android:layout_height="100dp"> <ImageView android:id="@+id/picture" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true" android:scaleType="centerCrop" /> <TextView android:clickable="true" android:id="@+id/name" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginBottom="10dp" android:layout_marginRight="10dp" android:gravity="right|bottom" android:textColor="@android:color/black" android:textSize="24sp" /> </RelativeLayout></android.support.v7.widget.CardView>
3.测试实体类
/** * Created by meijing on 2017/2/19. */public class ImageInfor { private String name; private int imageId; public ImageInfor(int imageId, String name) { this.imageId = imageId; this.name = name; } public int getImageId() { return imageId; } public void setImageId(int imageId) { this.imageId = imageId; } public String getName() { return name; } public void setName(String name) { this.name = name; }}
4.RecylcerView的适配器
import android.content.Context;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.ImageView;import android.widget.TextView;import com.project.coordinatortablayout.R;import java.util.List;/** * Created by meijing on 2017/2/19. */public class RecyclerviewAdapter extends RecyclerView.Adapter<CardViewRecylcerviewHolder> { private Context mContext; private List<ImageInfor> list; public RecyclerviewAdapter(Context mContext, List<ImageInfor> list) { this.mContext = mContext; this.list = list; } @Override public CardViewRecylcerviewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view= LayoutInflater.from(mContext).inflate(R.layout.item_cardview_layout,null); return new CardViewRecylcerviewHolder(view); } @Override public void onBindViewHolder(CardViewRecylcerviewHolder holder, int position) { ImageInfor bean = list.get(position); holder.getTvName().setText(bean.getName()); holder.getIviocn().setBackgroundResource(bean.getImageId()); } @Override public int getItemCount() { return list.size(); }}class CardViewRecylcerviewHolder extends RecyclerView.ViewHolder{ private TextView tvName; private ImageView iviocn; public CardViewRecylcerviewHolder(View itemView) { super(itemView); iviocn = (ImageView) itemView.findViewById(R.id.picture); tvName = (TextView) itemView.findViewById(R.id.name); } public TextView getTvName() { return tvName; } public ImageView getIviocn() { return iviocn; }}
5.主界面:
import android.os.Bundle;import android.support.v7.widget.DefaultItemAnimator;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import com.project.coordinatortablayout.R;import com.project.coordinatortablayout.ui.toolbar.config.BaseTransparentBarActivity;import java.util.ArrayList;import java.util.List;/** * cardview * 1.依赖包: compile 'com.android.support:cardview-v7:24.1.0' * 2.cardview继承与framelayout,是一个viewgroup, * 3.特点:有设置shadow(阴影),rounded conrner(圆角)的属性 * 3.属性方法: * CardView.cardBackgroundColor 设置背景色 CardView.cardCornerRadius 设置圆角大小 CardView.cardElevation 设置z轴阴影 CardView.cardMaxElevation 设置z轴最大高度值 CardView.cardUseCompatPadding 是否使用CompadPadding 设置内边距 CardView.cardPreventCornerOverlap 在xml文件中设置内边距,在V20和之前的版本中添加内边距,这个属性为了防止内容和边角的重叠 CardView.contentPadding 内容的padding CardView.contentPaddingLeft 内容的左padding CardView.contentPaddingTop 内容的上padding CardView.contentPaddingRight 内容的右padding CardView.contentPaddingBottom 内容的底padding 4.margin低版本兼容:可以在/res/value和/res/value-v21分别创建dimens.xml文件,在dimens.xml里,随意命名, 对于Android 5.0以上的设置数值0dp,对于Android 5.0以下的设置数值(根据实际需求) 5.使用情景:需要显示层次性的内容,可以考虑使用。 需要显示列表或网格时,可以考虑使用。 */public class CardViewActivity extends AppCompatActivity{ private RecyclerView mRecyclerView; //数据源 private List<ImageInfor> list=new ArrayList<>(); private RecyclerviewAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_card_view); //初始化组件 initView(); //初始化数据 initData(); } /** * 初始化组件 */ private void initView() { mRecyclerView= (RecyclerView) findViewById(R.id.activity_card_view); } /** * 初始化数据 */ private void initData() { list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); list.add(new ImageInfor(R.drawable.empty_default_img, "数据1")); LinearLayoutManager layoutManager=new LinearLayoutManager(this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.setItemAnimator(new DefaultItemAnimator()); mAdapter=new RecyclerviewAdapter(this,list); mRecyclerView.setAdapter(mAdapter); }}
6 图标:
6 效果图
0 0
- CardView的简单使用
- CardView的简单使用
- CardView的简单使用
- CardView的简单使用
- cardview的简单使用
- CardView的简单使用
- Android CardView的简单使用
- android 一个简单的CardView的 使用
- Android5.0中Cardview的简单使用
- Android中CardView的简单使用
- CardView简单使用
- CardView、RecyclerView简单使用
- android-cardview简单使用
- android5.0--RecyclerView和CardView结合使用的简单教程
- Android L 新增UI控件:RecyclerView CardView的简单使用
- Android新特性之CardView的简单使用
- Android新特性之CardView的简单使用
- Android新特性之CardView的简单使用
- Android实现圆角和圆形
- ubuntu安装spark 2.1.0
- prinf代码移植
- Linux 根据目录名Kill此目录下执行的所有进程
- Java Thread.join()详解
- CardView的简单使用
- 当程序猿老公拿起了我的数位板
- 第1章Shell介绍和脚本基础
- mfc:单文档中对话框类调用视图类和框架类成员变量的实例
- CodeForces - 755B
- UVA 11624 Fire(bfs + 多起点)
- Android -- Init进程对信号的处理流程
- 在VS2012下创建类似Visual Studio界面的方法
- 第3章 输入/输出重定向和管道