您的位置:首页 > 其它

自定义View中textSize显示异常

2017-02-08 17:15 218 查看

场景

在自定义View的时候自定义了一个textSize,但是使用pt/dp在不同手机上效果不同。

关键代码

attr.xml

<!--自定义所有标题View-->
<declare-styleable name="titleView">
<attr name="titleTextSize" format="dimension" />
</declare-styleable>


TitleView.java

public TitleView(Context context, AttributeSet attrs){
super(context,attrs);
ta = context.obtainStyledAttributes(attrs, R.styleable.titleView);
titleSize = ta.getDimension(R.styleable.titleView_titleTextSize,0);
titleView = new TextView(context);
titleView.setTextSize(titleSize);
}


问题原因

ta.getDimension(R.styleable.titleView_titleTextSize,0);返回的结果是dp/pt转px后的大小,但是titleView.setTextSize()是根据sp显示的,源码如下

public void setTextSize(float size) {
setTextSize(TypedValue.COMPLEX_UNIT_SP, size);
}


代码修正

显示指定setTextSize的单位为PX

titleView.setTextSize(TypedValue.COMPLEX_UNIT_PX,titleSize);


思考

如果自定义其他View的时候和size相关的数据在显示的时候是否需要显示的指定数据的格式?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  自定义View
相关文章推荐