Android-CardView适配5.0、像素适配

版权声明:本文为博主原创文章,转载请附原博客地址。侵权必究 https://blog.csdn.net/wapchief/article/details/80307105

用过CardView的可能遇到过适配问题。

在Android 5.0,API 21以上的版本才正常,在21以下边距会自动增加阴影的宽度。
如果不做适配,那么间距就会扩大,比如设置阴影高度为4dp,marginTop为3,最后效果就是控件的高度-4,marginTop为4+3=7dp。

参考百度的一些解决方案是给CardView设置cardPreventCornerOverlap属性。但是尝试并不能实现,于是只能通过比较笨的方式。

1、通过对不同版本设置不同的margin距离,
2、通过不同的分辨率
res

API 21及以上:

    <dimen name="dp_card_left_12">15.0dip</dimen>
    <dimen name="dp_card_top">7.5dip</dimen>
    <dimen name="dp_card_margin_15">15.0dip</dimen>
    <dimen name="dp_card_margin_10">10.0dip</dimen>
    <dimen name="dp_card_margin_5">5.0dip</dimen>
    <dimen name="dp_card_margin_7">7dip</dimen>
    <dimen name="dp_card_margin_8">8.0dip</dimen>
    <dimen name="dp_card_margin_0">0.0dip</dimen>
    <dimen name="dp_card_margin_4">4.0dip</dimen>
    <dimen name="dp_card_240">240.0dip</dimen>
    <dimen name="dp_card_104">105.0dip</dimen>
    <dimen name="dp_card_150">150.0dip</dimen>
    <dimen name="dp_card_180">180.0dip</dimen>
    <dimen name="dp_card_margin_item7">7.5dip</dimen>
    <dimen name="dp_card_margin_item15">15.0dip</dimen>
    <dimen name="px_card_170">85.0dip</dimen>

API 21以下

    <dimen name="dp_card_margin_15">11.0dip</dimen>
    <dimen name="dp_card_margin_10">6.0dip</dimen>
    <dimen name="dp_card_margin_5">1.0dip</dimen>
    <dimen name="dp_card_margin_7">3.5dip</dimen>
    <dimen name="dp_card_margin_8">4.0dip</dimen>
    <dimen name="dp_card_margin_0">-4.0dip</dimen>
    <dimen name="dp_card_margin_4">0.0dip</dimen>
    <dimen name="dp_card_240">244.0dip</dimen>
    <dimen name="dp_card_104">108.0dip</dimen>
    <dimen name="dp_card_150">154.0dip</dimen>
    <dimen name="px_card_170">89.0dip</dimen>
    <dimen name="dp_card_180">188.0dip</dimen>
    <dimen name="dp_card_margin_item7">2.0dip</dimen>
    <dimen name="dp_card_margin_item15">9.0dip</dimen>

猜你喜欢

转载自blog.csdn.net/wapchief/article/details/80307105
今日推荐