我想计算一个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;
请帮帮我!!提前致谢。 编码愉快!
答案 0 :(得分: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
答案 1 :(得分:0)
首先,您的文本持有人大小因设备而异, 而且,您可以做类似的事情,
@GET("Master/GetConsignerPartyList?prefix={claimId}")
Observable<ConsignerPartyResponse> consignerPartyReq(@HeaderMap Map<String, String> headers, @Path("claimId") String search);
答案 2 :(得分:0)
测量文字:您可以执行以下操作:
float textWidth = textView.getPaint().measureText(textView.getText().toString());
if(textView.getMeasureWidth() == n) {
Log.i("Text_count",textView.getText().toString().lenght());
}
或
if(textWidth == n) {
Log.i("Text_count",textView.getText().toString().lenght());
}
答案 3 :(得分:0)
尝试一下
addTextChangedListener
以读取字符。在覆盖方法beforeTextChanged
,onTextChanged
和afterTextChanged
中,读取类似下面的字符
int length = etText.length();
int leftCharacters = 500 - length; //let default length of edittext is 500
希望,它对您有用!