我如何计算TextView的字符数限制?

问题描述 投票:1回答:3

[我想计算一个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;

请帮帮我!!提前致谢。编码愉快!

android android-layout textview android-edittext
3个回答
0
投票

您在测量中缺少字体大小和字体。

        // 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

0
投票

首先,您的文本持有者大小随设备而异,对于计数,您可以执行类似的操作,

    int textLenght = yourtText.getText().toString().lenght();
    if(textLenght>n) {
    yourEditText.setText(yourText);}

0
投票

测量文本:您可以执行以下操作:

float textWidth = textView.getPaint().measureText(textView.getText().toString());

if(textView.getMeasureWidth() == n) {

Log.i("Text_count",textView.getText().toString().lenght());

}
© www.soinside.com 2019 - 2024. All rights reserved.