【问题标题】:how to get android textsize settings in java (min, max, selected)如何在java中获取android textsize设置(最小,最大,选定)
【发布时间】:2016-11-24 08:30:40
【问题描述】:

对于我的应用,我想让用户可以在回收站视图中调整 TextView 项目的文本大小(通过捏缩放或 SeekBar)。默认应该是系统设置中选择的文本大小。最小值应该是系统设置中的“非常小”,最大值应该是“巨大”的值。 我发现了一些使用Settings.System.getFloat(context、Settings.System.FONT_SCALE) 或TextView.setTextAppearance(context, android.R.style.TextAppearance_DeviceDefault_Large) 的提示,但调用TextView.setTextSize(TypedValue.COMPLEX_UNIT_PX, value). 并没有得到想要的结果 有什么想法吗?

提前致谢, 德克

【问题讨论】:

  • 你试过TextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, value)吗?
  • @sunnil Sunny - 是的,谢谢,但它并没有真正回答我的问题。为了获得当前的文本大小,我创建了一个TextView 对象(不将其添加到布局中)并调用它的getTextSize() 方法。我认为会有一种更优雅的方式,另外:如何根据系统设置对话框获取最小值和最大值?
  • 我想你正在寻找这个stackoverflow.com/questions/28411099/…。
  • 好吧,至少它接缝textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textView.getTextSize()) 不会改变文本大小。没关系。但是有没有办法从系统设置中获取值,以及 XS 和 XL 的“限制”?

标签: java android settings text-size


【解决方案1】:

可能是因为您没有将“值”转换为正确的单位。试试这个

  int size = ((int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, value ,getResources().getDisplayMetrics())

这里你的值被更改为正确的 SP 单位

TextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, size)

【讨论】:

    猜你喜欢
    • 2011-01-16
    • 2018-06-27
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-08
    相关资源
    最近更新 更多