Android 5.x新特性之利用CardView制造温和的阴影效果
2015-10-15 17:05
543 查看
利用gradle引进支持包:
因为V7支持包将cardview支持包单独拿出来了,所以不必担心引入太多的类:
![](http://img.blog.csdn.net/20151015170153456?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
总共只有这些类,其中一些类还是为了兼容性做了特别的处理,可以看到源码中关于这些的处理:
具体的可以进去看详细的。
CardView如Linearlayout、Framelayout一样都是ViewGroup,即其他控件的容器。CardView继承于Framelayout,所以Framelayout的属性他都有,同时CardView还有几个特殊的属性:
在API21(Android L)等级以上拥有属性elevation,意为CardView的Z轴阴影,只有L平台有效。只能通过xml中的elevation属性指定;
其余(2.0以上)有属性cardBackgroundColor,意为CardView的卡片颜色,只能通过xml的cardBackgroundColor进行指定;
其余(2.0以上)有属性cardConerRadius,意为CardView卡片的四角圆角矩形程度,单位dimen(dp px sp),可以通过xml指定,也可以通过代码中的setRadius指定。
示例:
需在头部引入:
如果你的项目中采用了CardView请注意在低版本中多测试
1.注意4.2.2及以下版本、4.2.2版本以上版本、5.0版本;
2.我遇到的问题有:
a.高度在5.0版本及以下版本的显示效果不一样(要设置的足够高,不然显示不全,讲上面的改为54dp的高度在低版本上的显示效果更好)
b.实现圆形的效果在5.0上的效果很好,在以下版本的效果会很差,简直不能忍受。。。
compile 'com.android.support:cardview-v7:21.+'
因为V7支持包将cardview支持包单独拿出来了,所以不必担心引入太多的类:
总共只有这些类,其中一些类还是为了兼容性做了特别的处理,可以看到源码中关于这些的处理:
private static final CardViewImpl IMPL; static { if (Build.VERSION.SDK_INT >= 21) { IMPL = new CardViewApi21(); } else if (Build.VERSION.SDK_INT >= 17) { IMPL = new CardViewJellybeanMr1(); } else { IMPL = new CardViewEclairMr1(); } IMPL.initStatic(); }
具体的可以进去看详细的。
CardView如Linearlayout、Framelayout一样都是ViewGroup,即其他控件的容器。CardView继承于Framelayout,所以Framelayout的属性他都有,同时CardView还有几个特殊的属性:
在API21(Android L)等级以上拥有属性elevation,意为CardView的Z轴阴影,只有L平台有效。只能通过xml中的elevation属性指定;
其余(2.0以上)有属性cardBackgroundColor,意为CardView的卡片颜色,只能通过xml的cardBackgroundColor进行指定;
其余(2.0以上)有属性cardConerRadius,意为CardView卡片的四角圆角矩形程度,单位dimen(dp px sp),可以通过xml指定,也可以通过代码中的setRadius指定。
示例:
需在头部引入:
xmlns:app="http://schemas.android.com/apk/res-auto"
<android.support.v7.widget.CardView android:layout_width="200dip" android:layout_height="34dip" android:layout_marginTop="110dip" android:layout_centerHorizontal="true" android:gravity="center" app:cardCornerRadius="5dp" app:cardElevation="7dp"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="4dip" android:layout_gravity="center" android:text="测试" android:textColor="#e8753e" android:textSize="16sp" /> </android.support.v7.widget.CardView>
如果你的项目中采用了CardView请注意在低版本中多测试
1.注意4.2.2及以下版本、4.2.2版本以上版本、5.0版本;
2.我遇到的问题有:
a.高度在5.0版本及以下版本的显示效果不一样(要设置的足够高,不然显示不全,讲上面的改为54dp的高度在低版本上的显示效果更好)
b.实现圆形的效果在5.0上的效果很好,在以下版本的效果会很差,简直不能忍受。。。
相关文章推荐
- Android ADB常用命令
- Java(Android)线程池
- Android Studio集成Facebook SDK
- Android 关于 OnScrollListener 事件简要分析
- android 权限
- android安全学习之5—apk中的META-INF目录
- Android Studio 快捷键整理分享
- Android Studio & ibus-daemon interactions
- Android开源项目分类汇总
- android - anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性
- Android开发模板------RecyclerView简介
- 【Android动画】之Tween动画 (渐变、缩放、位移、旋转)
- Android性能专项测试之Network monitor
- Android性能专项测试之GPU Monitor
- Android性能专项测试之Systrace工具
- Android性能专项测试之MAT
- Android性能专项测试之TraceView工具(Device Monitor)
- Android性能专项测试之Heap Snapshot工具
- Android性能专项测试之Allocation Tracker(Android Studio)
- Android性能专项测试之Allocation Tracker(Device Monitor)