我有一个简单的活动,我希望有一个圆角矩形形状.该活动使用半透明的Drawable.我看到其他开发人员的弹出窗口是半透明的(不是对话框主题),有圆角,我试图复制它.任何帮助,将不胜感激.
这是我目前拥有的代码,它在屏幕中间生成一个矩形半透明窗口.
<style name="Theme.TranslucentDialog">
<item name="android:colorBackgroundCacheHint">@null</item>
<item name="android:windowIsTranslucent">true</item>
<!-- Note that we use the base animation style here (that is no
animations) because we really have no idea how this kind of
activity will be used. -->
<item name="android:windowBackground">@drawable/translucent_background</item>
<item name="android:windowNoTitle">true</item>
<item name="android:colorForeground">#fff</item>
<item name="android:windowIsFloating">true</item>
<item name="android:backgroundDimEnabled">false</item>
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
</style>
<drawable name="translucent_background">#60000000</drawable>
Run Code Online (Sandbox Code Playgroud) 我想要一个Dialog有圆角的东西,但是当Dialog看到它下面有一个矩形,它在角落下面看到,像这样:

我dialog使用自定义构建DialogFragment:
public class MyDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.playdialog, null));
return builder.create();
}
}
Run Code Online (Sandbox Code Playgroud)
对话框布局(playdialog)具有以下drawable作为背景:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<solid
android:color="#AAAAAAAA" />
<stroke
android:width="2dp"
android:color="#FF000000" />
<corners android:radius="20dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
正如我所说,我将此drawable设置为背景:
android:background="@drawable/dialog_background"
Run Code Online (Sandbox Code Playgroud)
我不希望看到那个矩形.我该怎么做??
在这篇文章中,用户遇到了同样的问题.我试图使用适合他的解决方案,但它对我不起作用.我修改了DialogFragment这样的:
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
LayoutInflater inflater = getActivity().getLayoutInflater();
builder.setView(inflater.inflate(R.layout.playdialog, null));
Dialog …Run Code Online (Sandbox Code Playgroud)