我正在尝试创建一个带有弯曲边缘的弹出窗口。我看到一年前有一个与此类似的现有问题,我尝试了许多答案,但没有一个能解决手头的问题。最终,我正在创建一个本身会有弯曲边缘的活动,但是,有一个白色背景下面有角落,所以效果不起作用。另外,我试图使用Intents在我的其他活动中显示这个,但是这会创建一个全新的屏幕,并使活动未占用的空间变黑。我非常感谢你的帮助,谢谢。
XML格式:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<corners
android:radius="25dp"
/>
<solid
android:color="@color/GreenYellow"/>
</shape>
初始化窗口的JAVA代码:
confirmLayout = (RelativeLayout) findViewById(R.id.confirm_window);
getWindow().setLayout(width,height);
confirmLayout.setGravity(RelativeLayout.CENTER_VERTICAL);
confirmLayout.setBackgroundResource(R.drawable.justcurves);
窗口本身的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="match_parent"
android:layout_height="match_parent"
android:id="@+id/confirm_window"
tools:context="com.exampleryancocuzzo.ryan.markettycoon.ConfirmWindow"
android:background="@color/GreenYellow"
>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Press Confirm to proceed"
android:textSize="25sp"
android:gravity="center"
android:textStyle="bold"
android:layout_centerVertical="true"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Confirm"
android:padding="10dp"
android:layout_alignParentBottom="true"
android:layout_margin="5dp"
android:textColor="@color/White"
android:background="@color/Black"
android:onClick="confirmed"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Cancel"
android:padding="10dp"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_margin="5dp"
android:textColor="@color/White"
android:background="@color/DarkGray"
android:onClick="cancelled"
/>
</RelativeLayout>
答案 0 :(得分:1)
要使具有弯曲边缘的活动,您可以在styles.xml中定义自己的主题..!
请查看以下示例以了解相关信息,
<强> rounded_drawable.xml 强>
<corners android:radius="15dp" />
<solid android:color="#565656" />
<stroke
android:width="3dp"
android:color="#ffffff" />
<padding
android:bottom="6dp"
android:left="6dp"
android:right="6dp"
android:top="3dp" />
接下来制作自己的主题,扩展 styles.xml 中的父Theme.Dialog
:
<style name="ThemeWithCorners" parent="android:Theme.Dialog">
<item name="android:windowBackground">@drawable/another_test_drawable</item>
</style>
并在清单中,在活动代码中添加您的主题
<activity
android:name=".ActivityName"
android:label="@string/app_name"
android:theme="@style/ThemeWithCorners" >
多数民众赞成! 有关样式的更多信息,请参阅以下网址: http://developer.android.com/guide/topics/ui/themes.html
答案 1 :(得分:0)
我的应用程序扩展了AppCompatActivity,它抛出了IllegalStateException,但是一旦我将超类更改为Activity
就可以工作