Android下EditText中的字体不统一问题

Android下EditText中的字体不统一问题

好久没写,今天心情好略记下解决的某bug

在一个登录界面有帐号和密码两个EditText,但是却发现两个EditText的hint的英文字体不同,看着极不协调。但是两个EditText都没有特意设置过hint的字体啊···

经实验,把密码栏的android:password="true"属性去掉后字体变一样。应该是这个属性的影响。

经查,hint字体受EditText的text字体影响,即受android:typeface的影响。android:typeface有三个取值:“sans”,“serif”,“monospace”,而缺省的话普通EditText是Sans,想必密码框的缺省不同的原因。然后将两个EditText设置相同typeface,但是发现能正常改变帐号栏的hint字体,但是密码栏hint字体一直保持是monospace不变。

果断看源码,发现在EditText的初始化中有这么一段:

if (password) {

setTransformationMethod(PasswordTransformationMethod.getInstance());

typefaceIndex = MONOSPACE;

}

果然密码框初始化会强制设置字体为MONOSPACE,这样解决就简单了,在代码实现中加上:

idEdit.setTypeface(Typeface.SANS_SERIF);

passEdit.setTypeface(Typeface.SANS_SERIF);

这样字体就和谐了~

Android下EditText中的字体不统一问题,布布扣,bubuko.com

时间: 2024-12-26 09:48:13

Android下EditText中的字体不统一问题的相关文章

android 修改EditText 中光标

在使用EditText的XML 文件中加入一个属性: android:textCursorDrawable="@null" android:textCursorDrawable   这个属性是用来控制光标颜色的, "@null"   是作用是让光标颜色和text color一样 android:textCursorDrawable 的用法可以查看android sdk 另外可以用一个图片来修改光标的颜色大小 android:textCursorDrawable=&q

Android下EditText的hint的一种显示效果------FloatLabelLayout

效果: 此为EditText的一种细节,平时可能用的不多,但是用户体验蛮好的,特别是当注册页面的项目很多的时候,加上这种效果,体验更好 仅以此记录,仅供学习参考. 参考地址:https://gist.github.com/chrisbanes/11247418 采用的是Android 3.0的动画,所以有版本限制,可以用  nineoldandroids  做向下兼容 ,当然上面的网址也给了另一种方式做向下兼容. demo地址:http://download.csdn.net/detail/ab

eclipse下java中注释字体太小和xml中中文字体太小问题解决方法

我们在win7下进行android应用开发,需要搭建相应的开发环境.现在普遍基本上都是eclipse+adt+sdk,在本人搭建完环境后,发现eclipse下,java中的注释和xml中的中文字体变得特别小,无法看的清楚.解决方法如下: 1.Java中字体变大方法: 打开eclipse,Window-->Preferences,如下图打开: 双击第二个红色框,如下图: 将字体改成五号即可. 2.xml中中文字体太小解决方法: 打开eclipse,Window-->Preferences--&g

eclipse下java中凝视字体太小和xml中中文字体太小问题解决方法

我们在win7下进行android应用开发.须要搭建对应的开发环境.如今普遍基本上都是eclipse+adt+sdk,在本人搭建完环境后,发现eclipse下.java中的凝视和xml中的中文字体变得特别小,无法看的清楚.解决方法例如以下: 1.Java中字体变慷慨法: 打开eclipse.Window-->Preferences,例如以下图打开: 双击第二个红色框,例如以下图: 将字体改成五号就可以. 2.xml中中文字体太小解决方法: 打开eclipse.Window-->Preferen

<Android>关于EditText中setInputType和setSingleLine的冲突

最近自己开发了一个带有删除按钮的EditText,一方面需要设置为SingleLine,另一方面又需要设置输入类型,起先在xml文件中设置了android:inputType类型,在自定义的控件java代码里面设置了setSingleLine(),结果显示出的效果一直都是默认的输入类型,网上搜到结果,必须在setSingleLine()后设置inputType.随后进行了几次测试,得出以下的结论: 1.在xml中设置android:singleLine和android:inputType是完全没

C#中RichTextBox字体不统一(中英文)

this.richTextBox1.Font = new System.Drawing.Font("微软雅黑", 12F);// new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); richTextBox1.LanguageOption = System.Windows.Forms

Android EditText中字符大小与光标位置

最近的工作需要自己写一个数字键盘用于数字的输入,采用的方法是自定义一个  Dialog,然后将数字显示在EditText中.在处理过程中遇到遇到一个问题,在EditText的点击事件中屏蔽系统键盘并弹出自定义的Dialog,无法获取用户选中的字符即Selection,造成的问题现象是用户不能选中中间某个位置修改输入值. 为了解决这一问题,需要在EditText的点击事件中获取Selection. 解决方法是:1.在EditText点击事件中获取用户点击位置,主要取其中的touchX值(这里主要讨

Android 下分批加载数据以及listView使用过程中的优化

需求:在开发过程中,listview加载的数据如果比较大,这时为了提高用户体验感,我们应该事先分批加载以及下拉刷新功能 1.首先,数据访问层需要提供分批加载功能的接口, 代码如下: package com.zaizai.safty.db.dao; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.

Android(java)学习笔记100:android开发中修改字体

首先如果android内部自带的字体不是我们需要的字体,那我们就需要字体文件导入到android开发工程中,下午我们详细讲述: 1.我们首先分析知道,我想要TextView控件中文字的字体是:华文楷体,我们发现这是android系统内部所不具备的,所以我们要自己导入楷体文件.ttf 我们把华文楷体的字体文件放到assets文件夹下,新建一个fonts文件夹存放DroidSansFallback.ttf文件,如上图: 然后就是在程序中如何调用这个字体: 1 protected void onCre