[我想计算一个TextView可以容纳的字符总数,其文本大小为14dp,宽度为100dp,高度为100dp。然后我必须将这些字符的限制添加到EditText。
<TextView
android:id="@+id/OFSO_text1"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_weight="1"
android:layout_gravity="top|center"
android:fontFamily="@font/lato_bold"
android:gravity="center|bottom"
android:text="SEASONAL DISCOUNT ARE HERE"
android:textAlignment="center"
android:textAllCaps="true"
android:textColor="@color/lightcream"
android:textSize="14dp"
android:textStyle="normal"
android:autoSizeTextType="none"
/>
我已经尝试过此代码,但是无法正常工作。这为我提供了更多的char限制,然后此Textview可以容纳。
TextPaint paint = textView.getPaint();
int wordwidth=(int)paint.measureText("a",0,1);
int screenwidth = getResources().getDisplayMetrics().widthPixels;
int maxLength = screenwidth/wordwidth;
请帮帮我!!提前致谢。编码愉快!
您在测量中缺少字体大小和字体。
// In case you are storing your font in res/font
Typeface typeface = ResourcesCompat.getFont(context, R.font.noto_sans_regular);
paint.setTypeface = typeface
paint.setTextSize = sizeOfYourFontInPixels
首先,您的文本持有者大小随设备而异,对于计数,您可以执行类似的操作,
int textLenght = yourtText.getText().toString().lenght();
if(textLenght>n) {
yourEditText.setText(yourText);}
测量文本:您可以执行以下操作:
float textWidth = textView.getPaint().measureText(textView.getText().toString());
if(textView.getMeasureWidth() == n) {
Log.i("Text_count",textView.getText().toString().lenght());
}