我有一个字符串的组合,并且根据我想要调整各个字符串长度的最大字符数。如何获取按钮上的最大字符数:
Button foo=(Button)findViewById(R.id.foobutton);
String a="longtext";
String b="longtext";
String c="longtext";
foo.setText(a+b+c);
但如果a + b + c不合适,我想切断例如String b。
我尝试了以下内容,但它提供的字符多于实际适合的字符:
int maxpix=foo.getLayout().getEllipsizedWidth();
float textlengthinpix=foo.getPaint().measureText(a+b+c);
float pixperchar=textlengthinpix/((a+b+c).length());
int maxcharsinview=(int) (maxchars/pixperchar);
答案 0 :(得分:0)
尝试添加
android:maxLength="10" //say max length set to 10 character
使用按钮小部件的属性...
答案 1 :(得分:0)
我设法如下:
int maxcharspix=0;
float textlengthinpix=0;
float pixperchar=0;
String longstring="verylongstring";
try {
maxcharspix=btn.getLayout().getEllipsizedWidth();
textlengthinpix=btn.getPaint().measureText(longstring)*btn.getPaint().getTextScaleX();
pixperchar=textlengthinpix/(longstring.length());
} catch (Exception e){
e.printStackTrace();
}
int maxcharsinview=(int) (maxcharspix/pixperchar);
if (maxcharsinview<btn.length()){
//string is too long for button
}
btn.setText(adaptedlongstring);