java - Android 椭圆形对话框

标签 java android

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

如下面所附图片所述:

1- 默认对话框形状:

enter image description here

2-椭圆形对话框形状(我试图实现):

enter image description here

我的对话代码:

 final Dialog dialog = new Dialog(context);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);           
        dialog.setContentView(R.layout.custom_dialog);

 TextView text = (TextView) dialog.findViewById(R.id.dialog_text);
 text.setText(Html.fromHtml(getString(R.string.text_4)));

 ImageView image = (ImageView) dialog.findViewById(R.id.image);
 image.setImageResource(R.drawable.pic);

 Button dialogButton = (Button) dialog.findViewById(R.id.dialog_Button);

 dialogButton.setOnClickListener(new OnClickListener() {
    public void onClick(View v) {
        dialog.dismiss();
                }
            });

    dialog.show();
             }
        });

    }

默认对话框的样式代码:

 <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle">
     <stroke android:width="2dp" android:height="2dp" android:color="#B22222" /> 
       <solid android:color="#FCE6C9" /> 
        <padding android:left="2dp" android:top="2dp" android:right="2dp"
         android:bottom="2dp" /> 
     <corners android:radius="5dp" /> 
    </shape>

我希望通过代码而不是使用 9 block 图像来完成此操作,这样可以轻松控制 dilaoge 尺寸并根据需要调整其中的文本,

任何建议将不胜感激,谢谢。

最佳答案

不太确定如何在 android 上执行此操作,但我在 java 中使用的方法是使 JFrameJDialog 渲染表面透明然后在里面画我自己的自定义形状。为了使它们透明,我使用 AWTUtilities.setWindowOpacity

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

http://today.java.net/pub/a/today/2008/03/18/translucent-and-shaped-swing-windows.html

更多信息:

http://java.sun.com/developer/technicalArticles/GUI/translucent_shaped_windows/

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

http://www.codeproject.com/KB/java/shaped-transparent-jframe.aspx

关于java - Android 椭圆形对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11856114/

相关文章:

java - 返回集合或列表中的最高整数

java - 这是Java编译器错误还是正确的说法?

java - App Engine 使用对称密码

java - REST API - 在 Android 上使用 Java 进行 XML 解析

java - 如何在事件调用后200ms触发方法?

android - 如何解析json数据并在 GridView 中显示

java - 安卓编码问题

java - 如何用java编写自己的比较器类?

java - 使用 Maven 构建时 slf4j 版本冲突

android - 我可以将 onclick 事件和上下文菜单用于单个 View 吗?