如何从XML获取TextView的textSize值并在代码中设置给目标控件?
实现方法
方法1:直接复用固定的32sp值
既然XML里明确指定了32sp,可以直接通过setTextSize方法指定单位和数值:
holder.tvValue.setTextSize(TypedValue.COMPLEX_UNIT_SP, 32);
方法2:动态获取XML中tv_title的textSize值
如果需要动态读取tv_title的文本大小(比如该控件的textSize可能被主题、其他代码修改过),可以先获取tv_title实例,再传递它的文本大小:
// 获取布局中的tv_title实例 TextView tvTitle = itemView.findViewById(R.id.tv_title); // 获取tv_title的文本大小(返回值为像素值) float titleTextSize = tvTitle.getTextSize(); // 将像素值设置给tvValue holder.tvValue.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleTextSize);
注意事项
getTextSize()返回的是像素值,设置时必须指定单位为TypedValue.COMPLEX_UNIT_PX,否则会导致文字大小异常。- 如果
tv_title不在当前ViewHolder的布局范围内,需要确保能正确获取到该控件的实例(比如从Activity/Fragment中传递)。
内容的提问来源于stack exchange,提问作者Pedro Bonini
相关产品推荐
相关产品推荐

