在我的项目中,我需要将TextView
样式切换到Normal
和Bold
。下面是代码:
mTitleTextView.setTypeface(mTitleTextView.getTypeface(), letterItem.isRead() ? Typeface.NORMAL : Typeface.BOLD);
当TextView
不加粗时效果良好。但是当当前状态为粗体时,它不会返回到正常状态。
mTitleTextView.setTypeface(null, letterItem.isRead() ? Typeface.NORMAL : Typeface.BOLD);
上一行修复了问题,但是我使用了自定义字体,并且为当前字体传递null会删除字体。
等了一段时间后,这对我起作用了:
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
textView.invalidate();
if(isCliked){
isCliked = false;
Typeface face=Typeface.createFromAsset(getAssets(), "test.ttf");
textView.setTypeface(face,Typeface.NORMAL);
}
else{
Typeface face=Typeface.createFromAsset(getAssets(), "test.ttf");
textView.setTypeface(face, Typeface.BOLD);
isCliked = true;
}
Log.i("MainActivity", "onClick: "+isCliked);
}
});
字体保持不变,只改变粗体和正常