Activity android上的弯曲边缘

时间:2016-04-21 23:04:16

标签: android xml android-activity

我正在尝试创建一个带有弯曲边缘的弹出窗口。我看到一年前有一个与此类似的现有问题,我尝试了许多答案,但没有一个能解决手头的问题。最终,我正在创建一个本身会有弯曲边缘的活动,但是,有一个白色背景下面有角落,所以效果不起作用。另外,我试图使用Intents在我的其他活动中显示这个,但是这会创建一个全新的屏幕,并使活动未占用的空间变黑。我非常感谢你的帮助,谢谢。This is what the activity looks like right now

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>

2 个答案:

答案 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

就可以工作