Android закругленные углы макет ошибка
Я пытаюсь создать не полноэкранную активность с прозрачностью вокруг нее и использую этот макет 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>
Но получили этот результат с дефектами по углам, нижней и верхней сторонам:
Помогите мне исправить это, пожалуйста.
2 ответа:
Я нашел решение:
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) Activity 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>
Покрытие тематического представления AlertDialog формой не является хорошей идеей, как вы видите.
Вот вы и пришли tutorial:
http://darshangr.wordpress.com/2011/06/23/creating-a-transparent-view-in-android-login-screen-example/Естественно, вам нужно будет изменить его. Вместо белого backgroud установите свою форму с закругленными углами.