前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2-VVI-材料设计之CardView

2-VVI-材料设计之CardView

作者头像
张风捷特烈
发布2018-09-29 11:15:02
1.2K0
发布2018-09-29 11:15:02
举报
文章被收录于专栏:Android知识点总结
零、前言

[1].CardView extends FrameLayout [2].一个带圆角和阴影的FrameLayout,FrameLayout怎么用,它就怎么用 [3].依赖implementation 'com.android.support:cardview-v7:26.1.0'

CardView.gif

一、使用:
1.属性一览:
代码语言:javascript
复制
  app:cardBackgroundColor      背景颜色
  app:cardCornerRadius         圆角大小
  app:cardElevation            z轴阴影高度
  app:cardMaxElevation         z轴最大高度值

  app:contentPadding           内容与边距的间隔
  app:contentPaddingLeft       内容与左边的间隔
  app:contentPaddingTop        内容与顶部的间隔
  app:contentPaddingRight      内容与右边的间隔
  app:contentPaddingBottom     内容与底部的间隔    

  app:paddingStart             内容与边距的间隔起始
  app:paddingEnd               内容与边距的间隔终止

  app:cardUseCompatPadding     设置内边距,在API21及以上版本和之前的版本仍旧具有一样的计算方式
  app:cardPreventConrerOverlap 在API20及以下版本中添加内边距,这个属性为了防止内容和边角的重叠
  注意:CardView中使用android:background设置背景颜色无效。
2.可在style里抽一下常用的卡片样式:
代码语言:javascript
复制
    <!--cardView常用配置-->
    <style name="MyBaseCard" parent="@style/CardView.Light">
        <item name="cardPreventCornerOverlap">false</item>
        <item name="cardUseCompatPadding">true</item>
        <item name="cardElevation">9dp</item>
        <item name="cardCornerRadius">6dp</item>

        <item name="android:foreground">?attr/selectableItemBackground</item>
        <item name="cardBackgroundColor">#A0BDF4</item>
    </style>
3.使用:
代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <android.support.v7.widget.CardView
        android:id="@+id/id_cv"
        style="@style/MyBaseCard"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        android:layout_marginTop="8dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.441"
        app:layout_constraintStart_toStartOf="parent">

        <LinearLayout
            android:layout_width="200dp"
            android:layout_height="230dp"
            android:orientation="vertical">
            <ImageView
                android:layout_gravity="center"
                android:id="@+id/id_img"
                android:layout_width="wrap_content"
                android:layout_height="180dp"
                android:padding="5dp"
                android:src="@mipmap/c1"/>
            <TextView
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:background="#E8E9EA"
                android:gravity="center"
                android:padding="8dp"
                android:text="红红战士"
                android:textColor="#FF0000"/>
        </LinearLayout>
    </android.support.v7.widget.CardView>

</android.support.constraint.ConstraintLayout>
4.Activity:
代码语言:javascript
复制
public class V02_CardActivity extends AppCompatActivity {

    @BindView(R.id.id_cv)
    CardView mIdCv;
    @BindView(R.id.id_img)
    ImageView mIdImg;
    int count = 0;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.a2_card);
        ButterKnife.bind(this);
        mIdCv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                runAnima();
            }
        });
    }

    private void runAnima() {
        mIdCv.animate().translationX(100 + count).setDuration(1000).start();
        count += 10;
    }
}

二、后记
1.阴影Padding
代码语言:javascript
复制
CardView会自动添加一些额外的padding空间来绘制阴影部分,
这也导致了以V21为界的不同系统上CardView的尺寸大小不同
app:cardUseCompatPadding="true"适配
2.圆角覆盖:剪裁情况
代码语言:javascript
复制
app:cardPreventCornerOverlap="false"适配
3.点击涟漪
代码语言:javascript
复制
android:foreground="?android:attr/selectableItemBackground"

本文由张风捷特烈原创,转载请注明 更多安卓技术欢迎访问:https://www.jianshu.com/c/004f3fe34c94 张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com 你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.08.30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、前言
  • 一、使用:
    • 1.属性一览:
      • 2.可在style里抽一下常用的卡片样式:
        • 3.使用:
          • 4.Activity:
            • 二、后记
              • 1.阴影Padding
                • 2.圆角覆盖:剪裁情况
                  • 3.点击涟漪
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档