Android 如何根据区域高度动态计算最匹配的字体大小;最近项目遇到一个需求,给一个已知宽高的区域,在这个区域中绘制文本信息,需要根据区域高度计算字体大小以达到文字的高度刚好是区域的高度。自己找了一些资料,基本都是根据文本内容计算高度的,反过来则没有。
1、动态设置TextView的width
如果在xml中使用TextView,并且设置了textSize属性,若想在Java代码中动态的设置TextView的长度,
而不是在xml直接写死TextView的Width属性,可以通过TextView的getPaint()获得TextPaint对象,通过这
个TextPaint对象我们就可以获取到当前TextView设置的text的size, 这时如果想控制TextView中放置的text
的字数,就可以通过重新设置TextView的width属性来实现。
例如:
` int textSize = (int)pushNewsText.getPaint().getTextSize(); //获得当前textView的text size大小
`
2、Java代码中动态添加子view到RelativeLayout布局中:
LayoutParams childParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
ImageView firstView = new ImageView(context);
firstView.setId(zhangView.getId() + 1);
childParams .addRule(RelativeLayout.CENTER_VERTICAL);
childParams .addRule(RelativeLayout.LEFT_OF, targetView.getId()); //设置firstView位于targetView的左侧
childParams .rightMargin = 10;
firstView.setLayoutParams(childParams );
parentView.addView(firstView); //添加到父View中
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。