Java android椭圆形对话框

Java android椭圆形对话框,java,android,Java,Android,我有一个应用程序,它有一个按钮,按下它会启动一个默认对话框形状的对话框,我想知道我是否可以将对话框的默认形状更改为椭圆形,并对其应用特殊样式 如下图所示: 1-默认对话框形状: 2-我尝试实现的椭圆形对话框形状: 我的对话框代码: 默认对话框的样式代码: 我希望通过代码来完成,而不是使用9-patch图像,这样就可以很容易地控制dilaoge尺寸,并根据需要调整其中的文本 任何建议都将不胜感激。不太清楚如何在android上做到这一点,但我在java中使用的方法是使JFrame或JDialog渲

我有一个应用程序,它有一个按钮,按下它会启动一个默认对话框形状的对话框,我想知道我是否可以将对话框的默认形状更改为椭圆形,并对其应用特殊样式

如下图所示:

1-默认对话框形状:

2-我尝试实现的椭圆形对话框形状:

我的对话框代码:

默认对话框的样式代码:

我希望通过代码来完成,而不是使用9-patch图像,这样就可以很容易地控制dilaoge尺寸,并根据需要调整其中的文本


任何建议都将不胜感激。

不太清楚如何在android上做到这一点,但我在java中使用的方法是使JFrame或JDialog渲染曲面透明,然后在其中绘制我自己的自定义形状。为了使它们透明,我使用AWTUtilities.setWindowOpacity

在本文中,您将发现另一个想法,例如在渲染框架或对话框之前捕获桌面,并使用它修补框架:

更多信息:

这里有一个实现,不适用于android,但它可能会有所帮助:


好主意。在Android上,要使活动具有透明的背景,请将其放在清单文件中:

<activity android:name=".MyActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
然后,在该活动的布局文件中,添加以下内容

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ImageView
android:id="@+id/myImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/myRoundBackground" />

<TextView
android:id="@+id/myImageViewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/myImageView"
android:layout_alignTop="@+id/myImageView"
android:layout_alignRight="@+id/myImageView"
android:layout_alignBottom="@+id/myImageView"
android:layout_margin="1dp"
android:gravity="center"
android:text="Hello"
android:textColor="#000000" />

</RelativeLayout>
然后,您可以通过编程在文本视图上设置id为myImageViewText的文本。

看看这个。尝试使用shape=oval背景应用本教程。我想你会得到你想要得到的


我认为一个透明的背景和椭圆形的图像切片将为你工作。然后将按钮放在椭圆形图像的左侧。

此方法与您当前尝试的方法类似: 在custom_dialog.xml中,为相对布局指定一个android:background=@drawable/ovaldialog

在ovaldialog.xml中,尝试通过给定android:shape=oval来提供与编辑样式相同的参数,并将这些参数提供给角点,例如android:topLeftRadius=8dp和android:bottomrightraidius=10dp,然后使用这些值进行编辑,直到获得所需的形状。要给对话框指定红色,请给它一个宽度为2/3dp的笔划和一个android:color值


希望这有帮助

我应用你的代码并为对话框添加样式,但结果不是我所需要的,即使我无法控制文本位置非常感谢你的提示,它没有给出完整的答案,但指导我解决我的问题如果你想,我也可以发布代码,但我想答案很简单。很高兴我能帮助您尝试将以下内容添加到您的对话框代码中:dialog.getWindow.setBackgroundDrawablenew ColorDrawableandroid.graphics.Color.TRANSPARENT;
<activity android:name=".MyActivity" android:theme="@android:style/Theme.Translucent.NoTitleBar" />
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<ImageView
android:id="@+id/myImageView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/myRoundBackground" />

<TextView
android:id="@+id/myImageViewText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/myImageView"
android:layout_alignTop="@+id/myImageView"
android:layout_alignRight="@+id/myImageView"
android:layout_alignBottom="@+id/myImageView"
android:layout_margin="1dp"
android:gravity="center"
android:text="Hello"
android:textColor="#000000" />

</RelativeLayout>