如何确定按钮上的最大字符数

时间:2014-11-04 03:51:40

标签: android string button substring ellipsis

我有一个字符串的组合,并且根据我想要调整各个字符串长度的最大字符数。如何获取按钮上的最大字符数:

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);

2 个答案:

答案 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);