首先android textview的粗体效果对于汉字不知道为什么的没用用处 设置了也没什么变化,然则这只对英文有效,当你的TextView要显示中文的时辰要在code中设置粗体的paint来实现,如下
TextViewtitle=newTextView(context);TextPaintpaint=title.getPaint();
paint.setFakeBoldText(true);
paint.setFakeBoldText(true);
还有从xml中得到,但是这样麻烦在我项目中有很多次,我必须设置一个ID然后去找到,然后再去用代码设置它的大小,所以我想了一个一劳用逸的方法,那就是自定view,但我也不知道自定view怎么弄,所以有如下:
在贴出代码之前首先就view的重点说一下:
比如这里 xmlns:my="
http://schemas.android.com/apk/res/demo.dedo",
4.特别注意,因为我在我编写的时候,老是出现,找不到资源什么什么的,我看了一下,“自定义View所在的包”必须和AndroidManifest中的 package="demo.dedo"相同。
1.attrs.xml
- <?xmlversion="1.0"encoding="utf-8"?>
- <resources>
- declare-styleablename="TestView">
- attrname="textblod"format="integer"/>
- </declare-styleable>
2.TestView
- packagedemo.dedo;
- importandroid.content.Context;
- importandroid.content.res.TypedArray;
- importandroid.text.TextPaint;
- importandroid.util.AttributeSet;
- importandroid.widget.TextView;
- publicclassTestViewextendsTextView
- {
- privateTextPaintpaint;
- privateContextmContext;
- publicTestView(Contextcontext,AttributeSetattrs)
- super(context,attrs);
- //TODOAuto-generatedconstructorstub
- mContext=context;
- //对于我们自定义的类中,我们需要使用一个名为obtainStyledAttributes的方法来获取我们的定义
- TypedArrayparams=mContext.obtainStyledAttributes(attrs,
- R.styleable.TestView);
- //得到自定义控件的属性值。
- intbackgroundId=params.getInteger(R.styleable.TestView_textblod,0);
- setTextblod(backgroundId);
- }
- voidsetTextblod(inttextblod)
- if(textblod==1)
- paint=super.getPaint();
- paint.setFakeBoldText(true);
- }
- }
3.在xml中引用view
copy
- <?xmlversion="1.0"encoding="utf-8"?>
- <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:my="http://schemas.android.com/apk/res/demo.dedo"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <deme.deme.TestView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- my:textblod="1"
- android:text="这只是一个测试"
- />
- </LinearLayout>