我想为 Android 对话框的标题设置样式。这是标准的 android 对话框的样子
我想要的是像这样的东西,我用photoshop(标题的样式背景和它的另一种文本颜色)。
我知道可以将主题作为参数传递给 Dialog()-Constructor。但我不知道 xml 样式的元素会是什么样子。
我想为 Android 对话框的标题设置样式。这是标准的 android 对话框的样子
我想要的是像这样的东西,我用photoshop(标题的样式背景和它的另一种文本颜色)。
我知道可以将主题作为参数传递给 Dialog()-Constructor。但我不知道 xml 样式的元素会是什么样子。
它真的很简单...
您所要做的就是为您上传的图片创建一个 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>
就是这样......你完成了......只要在你想显示自定义对话框的地方调用这个函数......
希望解释是有用的....
您应该可以使用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。)