Android系统。两个完全相同的按钮有不同的阴影

时间:2017-06-28 08:24:28

标签: android android-layout button

在我的应用程序中,我有用户个人资料的屏幕。它有两个用于更改照片和密码的按钮。这是两个按钮的代码

....

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_marginTop="19dp"
        android:gravity="center_vertical">

        <ImageView
            android:id="@+id/ivUserProfile"
            android:layout_width="59dp"
            android:layout_height="59dp"/>

        <Button
            style="@style/AppTheme.RaisedButton"
            android:id="@+id/btnSwitchPhoto"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:theme="@style/AppTheme.White"
            android:text="@string/change_avatar"
            android:textSize="16sp"
            android:textColor="@color/colorPrimary"
            android:layout_marginRight="17dp"
            android:layout_marginLeft="18dp"/>

</LinearLayout>

....

<Button
    style="@style/AppTheme.RaisedButton"
    android:id="@+id/btnSwitchPassword"
    android:layout_width="wrap_content"
    android:layout_height="48dp"
    android:layout_marginTop="28dp"
    android:theme="@style/AppTheme.White"
    android:text="@string/changePassword"
    android:textSize="16sp"
    android:textColor="@color/colorPrimary"/>

这些按钮完全相同(文本除外),其中一个在LinearLayout内,并且在Android Studio预览中看起来相同。但是当我在设备上打开这个屏幕时,我看到按钮有不同的阴影。这是截图 Bottom button has more big shadow at the bottom

有什么问题吗?

3 个答案:

答案 0 :(得分:3)

这是正确的。

Android有两种类型的阴影 - 环境光和全向光。两者都会导致视图投射阴影。第一个是从环境中反射出来的光,几乎无处不在,每个视图周围都会产生静态,简单的灰色。

第二个更动态,并且会使视图的位置发生变化。全向光源位于屏幕上方。就像在现实世界中一样,如果某种东西远离光线,它的阴影会更多地移动。很难注意到,但是底部的按钮左侧有比右侧更多的阴影。那是因为它向左移动了。

答案 1 :(得分:0)

对两个按钮使用android:elevation =“10dp”并查看是否有帮助

答案 2 :(得分:-1)

function isValid($arg = 0) 
{
    return (is_nan($arg) || is_infinite($arg))? 0 :$arg;
}

return isValid(round($distance, $decimals));