oicuivu 2015-12-03 03:01 采纳率: 11.1%
浏览 2954

Android 如何根据区域高度动态计算最匹配的字体大小

Android 如何根据区域高度动态计算最匹配的字体大小;最近项目遇到一个需求,给一个已知宽高的区域,在这个区域中绘制文本信息,需要根据区域高度计算字体大小以达到文字的高度刚好是区域的高度。自己找了一些资料,基本都是根据文本内容计算高度的,反过来则没有。

  • 写回答

1条回答 默认 最新

  • 轻风流云穗 2015-12-03 03:01
    关注

    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中

    评论

报告相同问题?

悬赏问题

  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的