我有一个使用本地化的应用程序,在某些语言中,它对于它所拥有的空间来说很大,所以我正在做的是缩放它以适应,这是我的代码到目前为止:
if(Build.VERSION.SDK_INT >= 11.0){
TypedValue tv = new TypedValue();
getTheme().resolveAttribute(android.R.attr.actionBarSize, tv, true);
actionBarWidth = getResources().getDimensionPixelSize(tv.resourceId);
}
View infoButton = findViewById(R.id.info_button);
int infoWidth = infoButton.getMeasuredWidth();
DisplayMetrics metrics = new DisplayMetrics();
Display Screen = getWindowManager().getDefaultDisplay();
Screen.getMetrics(metrics);
int screenWidth = metrics.widthPixels;
int titleWidth = screenWidth - infoWidth - actionBarWidth;
TextView titleText = (TextView) findViewById(R.id.title_text);
titleText.setText("hello hello hello hello hello hello");
TextPaint paint = titleText.getPaint();
Rect rect = new Rect();
String text = String.valueOf(titleText.getText());
int textLength = text.length();
paint.getTextBounds(text, 0, textLength,rect);
if(rect.width() > titleWidth){
float size = titleText.getTextSize();
float factor = activityHelper.getScreenMetrics();
float product = size*factor;
titleText.setTextSize(TypedValue.COMPLEX_UNIT_PX, product);
size = titleText.getTextSize();
}
所以这使得文本变得庞大,但我想要它做的是在文本内部完美地缩放文本,如何根据文本大小设置文本大小?
修改
我可以添加一个while循环,每次循环检查文本是否适合所需的空间时,文本会变小吗?