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>

但是收到了这个结果,在角落、底部和顶部有缺陷:

在此处输入图像描述

请帮我解决它。

4

2 回答 2

5

我找到了解决方案:

1) 在以下位置创建主题 XML res/values/

<?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)Activity在项目清单 XML 中描述:

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

</activity>
于 2012-09-29T08:27:54.933 回答
1

如您所见,用形状覆盖 AlertDialog 主题视图并不是一个好主意。
你有教程:
http ://darshangr.wordpress.com/2011/06/23/creating-a-transparent-view-in-android-login-screen-example/

当然,您需要对其进行修改。而不是白色背景设置圆角的形状。

于 2012-09-28T17:21:05.980 回答