假設我有一個特定大小的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