CardView和FloatingActionButton坑的问题

兼容开发,引用v7目录下面的CardView项目

CardView: android-support-v7-cardView.jar

1.特性
1) 边框圆角效果
5.x 图片和布局都可以很好的呈现圆角效果,图片也变圆角了
4.x 图不能变成圆角,如果要做成5.x一样的效果:通过加载图片的时候自己去处理成圆角
2)阴影效果
3)5.x上有Ripple水波纹效果(低版本需要自己做自定义的)
android:foreground="?attr/selectableItemBackground"
android:clickable="true"
4)5.x实现按下的互动效果---下沉,松开弹起---Z轴位移效果 (低版本也需要自己自定义做)
5)可以设置内容的内边距
app:contentPadding="5dp"
同一套布局的兼容性开发:(5.x上面不需要设置app:contentPadding="5dp",而4.x上面不需要设置)

layout 低版本

layout-v21 高版本

 android:stateListAnimator="@anim/z_translation"
<?xml version="1.0" encoding="utf-8"?>
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"
    >
    <item
        android:state_pressed="true">
        <objectAnimator
           android:duration="@android:integer/config_shortAnimTime"
           android:propertyName="translationZ"
           android:valueTo="15dp"
           android:valueType="floatType"
            ></objectAnimator>
    </item>

    <item
        >
        <objectAnimator
           android:duration="@android:integer/config_shortAnimTime"
           android:propertyName="translationZ"
           android:valueTo="0dp"
           android:valueType="floatType"
            ></objectAnimator>
    </item>
</selector>

细节:
5.x上面,边距阴影比较小,需要手动添加边距16dp
4.x上面,边距太大, 手动修改边距0dp(原因:兼容包里面设置阴影效果自动设置了margin来处理16dp)
<CardView
app:cardCornerRadius="10dp" 圆角(半径值越大圆角就越明显)
app:cardElevation="10dp" 阴影效果 (值越大阴影效果越明显)
>
</CardView>
-----------------------------------MaterialDesign_FloatingActionButton----------------------------------------
FloatingActionButton :悬浮动作按钮
特性:1.阴影效果--景深(反馈动作:按下去阴影加深elevation)
2.水波纹效果
//3.其他效果--自己做
兼容性注意:
需要写两个layout/layout-v21
layout-v21:添加layout_margin="16dp"
layout: 添加layout_margin="0dp"
app:backgroundTint="?attr/colorPrimary"背景着色
        app:elevation="10dp"阴影深度
        android:layout_margin="0dp"

        app:fabSize="mini"大小:normal,mini

    <!--悬挂在哪个view上面,这个属性只用在coordiantorlayout中才有用-->
    <!--app:layout_anchor="@id/img"-->
    <!--悬挂的相对位置,方式,以中心点为基准-->
    <!--app:layout_anchorGravity="bottom|right"-->
    <!--由于父亲是imageview,因此用法也一样-->
    <!--android:src="@drawable/pic3"-->
    <!--设置背景颜色,默认为系统theme中的颜色-->
    <!--app:backgroundTint="#77098765"-->
    <!--设置混合模式,没用试出来什么效果-->
    <!--app:backgroundTintMode="src_over"-->
    <!--该属性尤为重要。假设不设置0dp。那么在4.1的sdk上FAB会显示为正方形。并且在5.0以后的sdk没有阴影效果。所以设置为borderWidth="0dp"-->
    <!--app:borderWidth="0dp"-->
    <!--设置默认状态下阴影的大小-->
    <!--app:elevation="100dp"-->


    <!--设置按下后阴影的大小-->
    <!--app:pressedTranslationZ="10dp"-->


    <!--设置FAB的大小,默认为normal,还有mini尺寸-->
    <!--app:fabSize="mini"-->


    <!--设置点击时的北京颜色-->
    <!--app:rippleColor="#FFCA2121"-->


    <!--行为,只有配合CoordinatorLayout使用才有效,可以自定义-->
    <!--app:layout_behavior=""-->


    <android.support.design.widget.FloatingActionButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="true"
        android:scaleType="fitXY"
        android:src="@drawable/pic3"
        app:backgroundTint="#098765"
        app:backgroundTintMode="src_over"
        app:borderWidth="0dp"
        app:elevation="2dp"
        app:fabSize="normal"
        app:layout_anchor="@id/img"
        app:layout_anchorGravity="bottom|right"
        app:pressedTranslationZ="10dp"
        app:rippleColor="#FFCA2121"
        app:layout_behavior=""
        />

猜你喜欢

转载自blog.csdn.net/u013297881/article/details/79983968