假设我有一个特定大小的TextView(其实并不重要...... fill_parent,20dip,无论如何)。是否有可能让文本缩小/增大以适应可用空间而不需要进行大量的数学计算?在TextView中缩放textSize
回答
不是说我知道,对不起。
嗯,它比“很多复杂的数学”要简单一些,但是如果你的文本的宽度与你的textview的宽度相差不远,那么我使用这种方法是可行的。
// 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);
如果您的文本的宽度可以比你的TextView的宽度显著不同,它可能是更好的使用二进制搜索,而不是线性搜索来找到合适的字体大小。
并不是说这是一个理想的解决方案,但如果您不经常需要调整文本大小,这是一个权宜之计。如果你需要经常调整文本大小,那么做一些复杂的数学可能会更好。
+1非常好的答案。应该是公认的IMO。 – 2011-01-05 11:29:47
U可以计算TextView的想法字体大小值。这是填充它的字体大小,不会太大。的公式为:
fontSize = (TextView Height) * (width DPI/height DPI)/(Screen Width * Screen Height);
的宽度和高度DPI可以通过覆盖在活性的onConfigurationChanged方法,以及使用newConfig.screenWidthDp和newConfig.screenHeightDp来获取。
在像素屏幕尺寸可以用下面的辅助函数
// Get Screen Size
static public Point getScreenSize(Activity aActivity)
{
Display display = aActivity.getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
return size;
}
根据需要(在onConfigurationChanged)我只计算此值,并将其推到一些静态辅助类来获取。然后,当TextView需要确定使用什么字体大小时,它会将其从该类中拉出。
它的工作原理,但可能不是最简单的解决方案。
没用。不考虑字符的长度。 – AndroidDev 2013-07-30 11:09:09
我尝试了几乎所有的上述和最失败,包括顶级之一。我发现最简单也最有效的是emmby,但发现你必须设置最初的文本大小。这里是他的,你不需要指定所有textsize的任何改善:
final String text = "HELP";
TextView tvFlash = (TextView) findViewById(R.id.tvFlash);
DisplayMetrics metrics = getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
tvFlash.setText(text);
tvFlash.setTextSize(TypedValue.COMPLEX_UNIT_PX, 1);
int size = 1;
do
{
float textWidth = tvFlash.getPaint().measureText(text);
if (textWidth < width)
tvFlash.setTextSize(++size);
else
{
tvFlash.setTextSize(--size);
break;
}
}while(true);
- 1. 在TextView中更改textSize
- 2. 捏缩放textview android
- 3. 的Android如何适应TEXTSIZE中的TextView
- 4. textSize在droid上得到缩放,但不应该是
- 5. 的Android变化的TextView TEXTSIZE从活动
- 6. 如何在android中执行垂直缩放textview
- 7. 是否可以在textview中缩放drawableleft&drawableright?
- 8. 如何在Android中的TextView上使用缩放控件?
- 9. 在Android中增加textSize
- 10. 可能指定TextView文本来缩放以适应TextView?
- 11. 如何放置在TextView中
- 12. TextView TextSize - 用户首选项vs规模独立像素
- 13. 在ASP.NET中缩放
- 14. 如果当前的textSize不符合TextView的边框,是否有默认的XML行来调整textSize的大小?
- 15. 在缩放模式下出现模糊的文字UITextField/TextView
- 16. 在android中缩进符号行TextView
- 17. textViews具有相同TEXTSIZE但显示在TEXTSIZE不同,为什么
- 18. 如何缩写TextView?
- 19. 缩放和缩放
- 20. 在RelativeLayout中居中放置ImageButton和TextView
- 21. textsize在android webview上增加
- 22. 如何在android中自动调整textSize?
- 23. Uiwebview在缩放和缩放后刷新
- 24. 在缩放时在网格/视图框中缩放文本
- 25. 在光环中的缩放图像中缩放图像
- 26. 把TextView放在NavigationView下
- 27. 缩放在d3js
- 28. 缩放在PlotChart
- 29. 缩放在XAML
- 30. 缩放在MATLAB
请在这里看到的答案,工作得很好:在这里输入链接的描述] [1] [1]:http://stackoverflow.com/questions/5033012/auto-scale-textview-text-to-fit-within-bounds – AllDayAmazing 2015-05-21 20:45:25