【问题标题】:android add shadow below viewandroid在视图下方添加阴影
【发布时间】:2017-12-12 13:10:58
【问题描述】:

我只是尝试为我的LinearLayout 添加阴影,以使我的视图在其他视图上表现得像这张图片facebook messenger

我尝试将此 xml 作为我的视图的背景,但它看起来像一条线而不是阴影

<shape android:shape="rectangle"
xmlns:android="http://schemas.android.com/apk/res/android">
<gradient android:startColor="@color/black_alpha_12" 
android:endColor="@android:color/transparent" android:angle="90.0" />
</shape>

我在 stackoverflow 中尝试了许多 xml 代码,没有人帮我制作我想要的阴影

【问题讨论】:

  • getSupportActionBar().setElevation(10);
  • 它不是ActionBar的视图
  • 选中的被称为ActionBar
  • 但在我的应用程序中,我将LinearLayout 设为ActionBar ,这会起作用View.setElevation(10); 吗?
  • @Nilu 必须等待 4 分钟才能接受 :)

标签: android shadow


【解决方案1】:

使用

getSupportActionBar().setElevation(10);

但根据您的上述评论in my app i made an LinearLayout as ActionBar did this will work

比使用

YourView.setElevation(10);

【讨论】:

    【解决方案2】:

    试试这个

    getSupportActionBar().setElevation(10);
    

    【讨论】:

      【解决方案3】:

      试试这个

      getSupportActionBar().setElevation(10);

      我在这里首先回答的另一个参考Example

      希望对你有帮助

      【讨论】:

        【解决方案4】:

        你可以使用 cardview 或 view.setElevation(10) 获得阴影效果;两者都可以。

        ref-How to add shadow on CardView aligned to bottom of parent

        ref-https://material.io/guidelines/material-design/elevation-shadows.html#

        【讨论】:

          【解决方案5】:

          使用&lt;layer-list&gt; 设置视图背景。 像这样

          <TextView
            android:id="@+id/tv_item"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/keyboard_btn_bg"
              />
          

          keyboard_btn_bg.xml

          <?xml version="1.0" encoding="utf-8"?>
          <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
              <item>
                  <shape android:shape="rectangle">
                      <size
                          android:width="130dp"
                          android:height="25dp" />
                      <corners android:radius="8dp" />
          
                      <padding
                          android:bottom="2dp"/>
                      <stroke
                          android:width="0dp"
                          android:color="#20000000" />
                      <solid android:color="#20000000" />
                  </shape>
              </item>
              <item>
                  <shape android:shape="rectangle">
                      <size
                          android:width="160dp"
                          android:height="25dp" />
                      <corners android:radius="8dp" />
                      <padding
                          android:top="8dp"
                          android:bottom="8dp"
                          android:left="8dp"
                          android:right="8dp"
                          />
                      <stroke
                          android:width="1dp"
                          android:color="#808080" />
                      <solid android:color="#ffffff" />
                  </shape>
              </item>
          

          【讨论】:

            【解决方案6】:

            属性提升仅用于 API 级别 21 及更高级别 例如,一些标签也可以不用,比如 API 21 中引入的布局中的新元素。

            将 xml 中的高程属性设置为 10dp 或 8dp android:elevation="10dp"

            【讨论】:

              猜你喜欢
              • 2016-03-20
              • 2020-04-21
              • 2016-11-03
              • 2014-02-08
              • 1970-01-01
              • 1970-01-01
              • 2017-02-14
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多