Android AlertDialog更改标题颜色,字体等

更改AlertDialog标题的方法google目前没有提供,只能通过其他办法

一种办法是:首先在源代码中找到有个叫AlertController的类,这个类就是AlertDialog的实现类,是没有对外公开的,然后在这个类中有个私有成员变量叫mTitleView,这个就是AlertDialog的title的TextView,所以只要得到这个成员变量的实例,即可自定义AlertDialog的title

得到这个的实例变量的方法通过两步反射来实现,如下:

    AlertDialog dialog = (AlertDialog) getDialog();
    try {
        Field mAlert = AlertDialog.class.getDeclaredField("mAlert");
        mAlert.setAccessible(true);
        Object alertController = mAlert.get(dialog);

        Field mTitleView = alertController.getClass().getDeclaredField("mTitleView");
        mTitleView.setAccessible(true);

        TextView title = (TextView) mTitleView.get(alertController);
        title.setTextColor(0xff33b5e5); 

    } catch (NoSuchFieldException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }

当然还有其他办法,比如直接把title隐藏掉,然后在content View中自定义一个title出来等等

时间: 2024-10-22 11:16:36

Android AlertDialog更改标题颜色,字体等的相关文章

tabbar选中按钮的标题颜色和字体

@implementation XMGTabBarController /* 问题: 1.选中按钮的图片被渲染 -> iOS7之后默认tabBar上按钮图片都会被渲染 1.修改图片 2.通过代码 √ 2.选中按钮的标题颜色:黑色 标题字体大 -> 对应子控制器的tabBarItem 3.发布按钮显示不出来 */ // 只会调用一次 + (void)load { // 获取哪个类中UITabBarItem,appearance:只能在控件显示之前设置,才有作用 UITabBarItem *ite

UINavigationController改变UINavigationBar导航条标题颜色跟字体

UINavigationController改变UINavigationBar导航条标题颜色和字体 iOS 5 以后 UINavigationController 可以 改变UINavigationBar导航条标题颜色和字体 [self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor colorWithRed:0 green

【转】iOS中设置导航栏标题的字体颜色和大小

原文网址:http://www.360doc.com/content/15/0417/11/20919452_463847404.shtml iOS中设置导航栏标题的字体颜色和大小,有需要的朋友可以参考下. 在平时开发项目的时候,难免会遇到修改导航栏字体大小和颜色的需求,一般使用自定义视图的方法,其实还存在一种方法. 方法一:(自定义视图的方法,一般人也会采用这样的方式) 就是在导航向上添加一个titleView,可以使用一个label,再设置label的背景颜色透明,字体什么的设置就很简单了.

更改android actionbar tab文字颜色

1 在res/values/colors.xml <color name="text_tab_selected">#000000</color> <color name="text_tab_unselected">#886C2A</color> 2 /res/color 定义文件 tab.xml <?xml version="1.0" encoding="utf-8"?&g

(转)Android 自定义 spinner (背景、字体颜色)

Android 自定义 spinner (背景.字体颜色) (2012-07-04 17:04:44)   1.准备两张图片,并做好9.png 2.在drawable中定义spinner_selector.xml <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" &

设置导航栏标题颜色及字体大小

//改变导航栏标题颜色及字体大小 e.g设置字体颜色为red 字体大小为18 self.navigationController.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor redColor], NSFontAttributeName : [UIFont boldSystemFontOfSize:18]}; //改变导航栏返回按钮颜色 [self.navigationControll

Android代码中更改TextView颜色

项目中,需要在代码中动态更改TextView的颜色,原先使用如下: text.setTextColor(R.color.black); 为生效,查阅资料后,正确写法如下: text.setTextColor(context.getResources().getColor(R.color.black)); 或: text.setTextColor(getResources().getColorStateList(R.color.black)); Android代码中更改TextView颜色

Android AlertDialog对话框自定义风格的另类实现

一.引子 学过Android的同学都知道,对话框的重要程度非常高,任何一款 app几乎都离不开对话框,值得庆幸的是,对话框的运用在Android中还是相对比较容易的.虽然很简单,但我在项目中还是碰到些问题,比如,如何实现自定义的对话框NegativeButton的点击效果.如何改变标题的字体大小和颜色等. 二.分析和实现 下面来看一下下面那张效果图,微信长按通讯录时弹出的对话框. 我相信,只要是有了一定Android基础的同学都能实现此功能,就算一时忘记了,稍微google下也是能做出来的:根据

Android中快速实现自定义字体!

前言:我们都知道,Android中默认的字体是黑体,而大多数app也都是使用的这种字体,但我们发现,大多数app中,个别地方字体非常好看,例如app的标题栏,菜单栏等地方,那他们是怎么做到的呢?有两种方式,第一是图片来代替文字,第二,就是今天我要教大家的自定义字体. 开发环境: Android Studio 2.2.2 compileSdkVersion 25 buildToolsVersion "25.0.0" minSdkVersion 19 targetSdkVersion 25