安卓圆角布局bug

4

我尝试创建一个不完整屏幕的Activity,在其周围使用透明度,并使用以下布局XML:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="fill_parent"
    android:layout_width="fill_parent"
    android:id="@+id/containerPageContainer">


    <FrameLayout
        android:id="@+id/informationContainer"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center" >

        <LinearLayout
            android:id="@+id/myContainer"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/rounder_corners"
            android:orientation="vertical"
            android:padding="10dp" >

        </LinearLayout>

    </FrameLayout>

</merge>  

关于圆角:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">

    <solid android:color="#FFFFFFFF" />
    <corners android:radius="10dp" />

</shape>

但是我收到的结果存在角落、底部和顶部边缘的瑕疵:

enter image description here

请帮助我修复它。

看起来像是AlertDialog风格的窗口内部的形状。 - pawelzieba
是的,那么,我该如何接收带有圆角的白色填充的“Activity”? - Dmytro Zarezenko
2个回答

5

我找到了解决方案:

1)在res/values/中创建主题XML文件:

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
  <style name="Theme.Transparent" parent="android:Theme">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">true</item>
    <item name="android:backgroundDimEnabled">false</item>
  </style>
</resources>

2) 圆角样式 drawable/rounded_corners.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" android:padding="10dp">

    <solid android:color="#FFFFFFFF" />
    <corners android:radius="10dp" />

</shape>

3) 活动 XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/qrCodeContainer"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="center_horizontal"
        android:background="@drawable/rounder_corners"
        android:orientation="vertical"
        android:padding="15dp"
        android:layout_margin="6dp" >

    </RelativeLayout>

</RelativeLayout>

4) 在项目清单XML中描述Activity

<activity
    android:name=".view.ViewCodeActivity"
    android:label="@string/app_name"
    android:theme="@style/Theme.Transparent">

</activity>

太好了!这正是我一直在寻找的。谢谢! - Sirop4ik

1

应该可以工作。虽然我没有测试过,但这是我找到的最完整的示例。 - pawelzieba
主要思路是创建一个透明的活动,并在其中显示具有圆角背景的视图。 - pawelzieba

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接