概述
Java代码中的“android:fontFamily =”sans-serif-light“相当于什么?
我的问题很简单:
在我的每个textview中,我正在使用该属性
android:fontFamily="sans-serif-light"
在后置慧聪设备上提供华丽外观。
不幸的是,这不适用于每个部件和我的Spinners,我需要覆盖适配器。
@Override public View getView(int position, View convertView, ViewGroup parent) { //You can use the new tf here. if(convertView == null || convertView.getTag() == null) { // new view - populate convertView = inflater.inflate(android.R.layout.simple_spinner_dropdown_item, parent, false); convertView.setTag(new Object()); } CheckedTextView spinner_text=(CheckedTextView) convertView.findViewById(android.R.id.text1); //Typeface should be set here... return spinner_text; } }
那么,有没有办法通过代码获得完全相同的结果?
PS:不,我不想在资产文件夹里放一个字体,我只想用系统一个。
应该可以用setTypeface()和Typeface.create() :
convertView.setTypeface(Typeface.create("sans-serif-light", Typeface.NORMAL));
请参阅文档 :
创build一个给定姓氏的字体对象,以及选项样式信息。 如果名称传递为null,则将select“默认”字体。 可以查询得到的字体对象( getStyle() )来发现它的“真实”风格特征。
请注意,过分使用Typeface.create()对您的内存不利,正如此评论所述 。 build议的Hashtable是一个很好的解决scheme,但是你不得不稍微修改它,因为你没有从资产创build你的字体。
在我看来,仍然有一种方法可以在TextView上以编程方式应用系统字体, 而不会有任何内存问题 ,并且使用textview.setTextAppearance方法:
if(condition){ textView.setTextAppearance(context,R.style.styleA); }else{ textView.setTextAppearance(context,R.style.styleB); }
这将是可能的通过使用
TextView类的setTypeface(Typeface tf, int style)方法。
spinner_text.setTypeface(Typeface.SANS_SERIF,Typeface.NORMAL);
dynamic的,你可以使用这个在xml中设置类似于android:fontFamily的fontfamily,
For Custom font: TextView tv = ((TextView) v.findViewById(R.id.select_item_title)); Typeface face=Typeface.createFromAsset(getAssets(),"fonts/mycustomfont.ttf"); tv.setTypeface(face); For Default font: tv.setTypeface(Typeface.create("sans-serif-medium",Typeface.NORMAL));
这些是所使用的默认字体系列的列表,使用任何这个replace双引号string“sans-serif-medium”
FONT FAMILY TTF FILE 1 casual ComingSoon.ttf 2 cursive DancingScript-Regular.ttf 3 monospace DroidSansMono.ttf 4 sans-serif Roboto-Regular.ttf 5 sans-serif-black Roboto-Black.ttf 6 sans-serif-condensed RobotoCondensed-Regular.ttf 7 sans-serif-condensed-light RobotoCondensed-Light.ttf 8 sans-serif-light Roboto-Light.ttf 9 sans-serif-medium Roboto-Medium.ttf 10 sans-serif-smallcaps CarroisGothicSC-Regular.ttf 11 sans-serif-thin Roboto-Thin.ttf 12 serif NotoSerif-Regular.ttf 13 serif-monospace CutiveMono.ttf
“mycustomfont.ttf”是ttf文件。 path将在src / assets / fonts / mycustomfont.ttf中 ,您可以参考有关默认字体的更多信息
最后
以上就是从容奇迹为你收集整理的serif在java中什么意思_Java代码中的“android:fontFamily =”sans-serif-light“相当于什么?...的全部内容,希望文章能够帮你解决serif在java中什么意思_Java代码中的“android:fontFamily =”sans-serif-light“相当于什么?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复