在TextView中缩放textSize

Jer*_*gan 12 android textview

假设我有一个特定大小的TextView(真正重要的是什么...... fill_parent,20dip,等等).是否有可能告诉文本缩小/增大尺寸以适应可用空间而无需进行大量数学运算?

emm*_*mby 18

嗯,它比"很多复杂的数学"简单一点,但是如果文本的宽度与文本视图的宽度相差太远,那么我使用的黑客解决方案是可行的.

    // HACK to adjust text width
    final int INITIAL_TEXTSIZE = 15;
    final int TEXTVIEW_WIDTH = textviewBackground.getIntrinsicWidth(); // I use the background image to find the width, but you can use a fixed value or whatever other method you prefer.
    final String text = ...;
    textView.setText( text );

    int size = INITIAL_TEXTSIZE;
    while( textview.getPaint().measureText(text) > TEXTVIEW_WIDTH )
        textview.setTextSize( --size );
Run Code Online (Sandbox Code Playgroud)

如果文本的宽度可能与TextView的宽度明显不同,则最好采用二分搜索而不是线性搜索来查找正确的字体大小.

不是说这是一个理想的解决方案,但如果你不经常需要调整你的文本化,这是一个权宜之计.如果你需要经常调整你的文本大小,那么做一些复杂的数学可能会更好.


Com*_*are 0

据我所知,抱歉。