2

我想为 Android 对话框的标题设置样式。这是标准的 android 对话框的样子在此处输入图像描述

我想要的是像这样的东西,我用photoshop(标题的样式背景和它的另一种文本颜色)。 在此处输入图像描述

我知道可以将主题作为参数传递给 Dialog()-Constructor。但我不知道 xml 样式的元素会是什么样子。

4

2 回答 2

0

它真的很简单...

您所要做的就是为您上传的图片创建一个 XML 布局,然后只需使用您刚刚创建的 XML 文件简单地扩展对话框......

我只是给你一个示例代码,然后你可以轻松地跟随

private View mView;
private Dialog mDialog;
private LayoutInflater mInflater;

现在创建一个函数:-

private void showCustomDialog() {
    mInflater = (LayoutInflater) getBaseContext().getSystemService(
            LAYOUT_INFLATER_SERVICE);
    ContextThemeWrapper mTheme = new ContextThemeWrapper(this,
            R.style.YOUR_STYE);

    mView = mInflater.inflate(R.layout.YOUR_XML_LAYOUT_FILE, null);
    // mDialog = new Dialog(this,0); // context, theme

    mDialog = new Dialog(mTheme);
    mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    mDialog.setContentView(this.mView);
    mDialog.show();

    TextViiew someText = (TextView) mView.findViewById(R.id.textViewID);
    // do some thing with the text view or any other view 

}

最后确保你的风格是: -

<style name="YOUR_STYLE">
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowFrame">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:windowIsTranslucent">false</item>
    <item name="android:windowContentOverlay">@android:color/transparent</item>
    <item name="android:backgroundDimEnabled">false</item>
</style>

就是这样......你完成了......只要在你想显示自定义对话框的地方调用这个函数......

希望解释是有用的....

于 2012-10-04T08:23:26.247 回答
0

您应该可以使用setCustomTitle(View)它。我从未使用过它,但它应该是这样的:

TextView title = new TextView(context);
title.setBackgroundColor(0xFFFF0000);
title.setTextColor(0xFFFFFFFF);
title.setLayoutParams(/* LayoutParams with MATCH_PARENT width and WRAP_CONTENT height */);
title.setPadding(/* Some padding values */);
yourDialogBuilder.setCustomTitle(title);

在逐字复制现有 Android 对话框标题的布局方面,我不确定这些值的参数是什么。你可能不得不乱来和/或用谷歌搜索找到它们。(字体本身显然是 4.0+ 的 Roboto 和更少的 Droid。)

于 2012-09-17T20:26:47.397 回答