如何在android的linearlayout中删除阴影?

Posted

技术标签:

【中文标题】如何在android的linearlayout中删除阴影?【英文标题】:how to remove shadow in linearlayout in android? 【发布时间】:2015-09-03 13:40:40 【问题描述】:

我正在为自定义对话框警报设计一个带有圆角的线性布局,当它弹出时,即使没有提及背景为黑色,在添加的图像中显示为圆形,白色弹出窗口也会与黑色布局重叠。我想显示带有圆角的弹出窗口图片中没有黑色部分,

谁能帮帮我。

customDialog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:background="@null"
android:orientation="vertical" >

<LinearLayout
    android:layout_
    android:layout_
    android:layout_marginLeft="20dp"
    android:layout_marginRight="20dp"
    android:background="@drawable/rounded_corner"
    android:orientation="vertical" >



    <TextView
        android:id="@+id/dialog_title"
        android:layout_
        android:layout_
        android:ellipsize="none"
        android:gravity="center_vertical|center_horizontal"
        android:maxLines="50"
        android:paddingBottom="10dp"
        android:paddingTop="10dp"
        android:scrollHorizontally="false"
        android:text="title"
        android:textColor="@color/aa_text"
        android:textSize="25dp" />



    <TextView
        android:id="@+id/dialog_message"
        android:layout_
        android:layout_
        android:ellipsize="none"
        android:maxLines="50"
        android:paddingBottom="10dp"
        android:paddingLeft="40dp"
        android:paddingTop="10dp"
        android:scrollHorizontally="false"
        android:text="message"
        android:textColor="@color/black"
        android:textSize="20dp" />

    <ListView
        android:id="@+id/dialog_lv_options"
        android:layout_
        android:layout_
        android:background="@color/white"
        android:visibility="gone" />

    <ImageView
        android:id="@+id/popupBorder"
        android:layout_
        android:layout_
        android:background="@color/background" />

    <LinearLayout
        android:id="@+id/dialog_ll_buttons"
        android:layout_
        android:layout_
        android:orientation="horizontal"
        android:paddingLeft="5dp"
        android:paddingRight="5dp" >

        <Button
            android:id="@+id/dialog_positivebutton"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:background="@drawable/dialog_button_selector"
            android:text="OK"
            android:textColor="@color/background" />

        <ImageView
            android:id="@+id/btnBorder"
            android:layout_
            android:layout_
            android:background="@color/background" />

        <Button
            android:id="@+id/dialog_negativebutton"
            android:layout_
            android:layout_
            android:layout_weight="1"
            android:background="@drawable/dialog_button_selector"
            android:text="Cancel"
            android:textColor="@color/background" />
    </LinearLayout>
</LinearLayout>

</LinearLayout>

rounded_corner.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#eeeeee"/>
<stroke android: android:color="#eeeeee" />
<corners android:radius="10dip"/>
<padding android:left="0dip" android:top="0dip" android:right="0dip"     android:bottom="0dip" />
</shape>

【问题讨论】:

【参考方案1】:

如果你使用 Dialog 类,试试这个答案:https://***.com/a/3114466/837714 从那里引用:

创建自定义样式并将其放置在您的 values 文件夹中

<?xml version="1.0" encoding="utf-8"?>
<resources>
  <style name="YourCustomStyle" parent="android:Theme">
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources> 

要为单个对话框设置样式,您可以使用

Dialog dialog = new Dialog(context, R.style.YourCustomStyle);

更新

从 cmets 向上移动:

我误解了这个问题。实际解决方案是:

dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);

【讨论】:

不,它不工作它显示相同的问题。请检查添加的图像。 对不起,我误会你了。试试这个解决方案: dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);【参考方案2】:

我用过

android:elevation="0sp"

去除阴影。工作正常,您仍然可以在 LinearLayout 上设置 背景

【讨论】:

如果我们的 API 级别 【参考方案3】:

将此属性放在 LinearLayout 标签或元素上:

android:background="@color/fui_transparent"

【讨论】:

以上是关于如何在android的linearlayout中删除阴影?的主要内容,如果未能解决你的问题,请参考以下文章

Android:如何以编程方式设置 LinearLayout 边距

Android - 如何在使用带有权重的 LinearLayout 时消除不需要的间隙

如何在Android Studio的活动底部制作Android xml Linearlayout?

Android:如何将 LinearLayout 的内容垂直包装在 TableRow 中?

如何在android中使LinearLayout中的TextView拖动平滑?

如何在android的linearlayout中删除阴影?