CardView cardUseCompatPadding

Jay*_*iyk 7 android android-layout android-cards android-cardview android-5.0-lollipop

我正在为Lollipop和早期版本开发Android应用程序.

我正在使用CardView(这个cardView没有任何孩子,它只是放在我的View后面)来创建阴影.

但是当它在前Lollipop设备上运行时会出现问题.

所以我将cardUseCompatPadding设置为true.我想知道我是否可以获得这个compat填充的值?

有没有我能找到价值的参考?

Jah*_*old 10

添加到CardView的compat填充取决于您设置的角的高度和半径.您可以在支持库中的RoundRectDrawableWithShadow类中找到实际计算.

您可以在运行时使用以下内容计算它:

    float elevation = cardView.getMaxCardElevation();
    float radius = cardView.getRadius();
    double cos45 = Math.cos(Math.toRadians(45));

    int horizontalPadding = (int) (elevation + (1 - cos45) * radius);
    int verticalPadding = (int) (elevation * 1.5 + (1 - cos45) * radius);
Run Code Online (Sandbox Code Playgroud)