0
我有一個固定寬度和高度的EditText
。如果長度/文本太多,我希望EditText
可以自動縮小文字大小。爲了實現這一點,我的問題是:如何獲取固定寬度/高度的最大文本長度EditText和文本大小
- 我怎麼能給予固定的寬度/高度和文字 大小獲得最大的長度?
- 通過固定/高度和文字 的內容應使用什麼文字大小?
我有一個固定寬度和高度的EditText
。如果長度/文本太多,我希望EditText
可以自動縮小文字大小。爲了實現這一點,我的問題是:如何獲取固定寬度/高度的最大文本長度EditText和文本大小
好吧,我收集了一些關於它的想法,並且我將它呈現給你。我還沒有測試過它。所以首先我們需要做的是獲得編輯文本的最大長度。但是,只有有限的參數有他們的getter,所以我認爲你不能讀它。
所以寫值文件夾中的長度(說12),並在xml佈局和你的java類中使用它。現在它不是硬編碼的。在Java中
1)創建integer.xml中值
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item type="integer" name="max_length">12</item>
</resources>
2)在佈局
<TextView android:id="@+id/tv"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:maxLength="@integer/max_length"
/>
3):
int maxLength = getResources().getInteger(R.integer.max_length);
現在我們要調整文本的字體大小,所以我們需要獲得第一:
msgInput = (EditText) findViewById(R.id.msgInput);
msgInput.addTextChangedListener(new TextWatcher()
{
public void afterTextChanged(Editable s) {
if ((msgInput.getMaxHeight() > maxLength) || (msgInput.getTextSize() > maxLength))
{
msgInput.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, TableRow.LayoutParams.WRAP_CONTENT));
}
else
{
int height = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, 40, getResources().getDisplayMetrics());
msgInput.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT, height));
}
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
});
總而言之,你要在這裏申請TextView。
那麼你是說你編程式地想讓編輯文本更加成熟一些,並且當參數太多時會自動縮小文本大小? –
爲什麼不設置最大長度?設置最大長度非常簡單:'android:maxLength =「10」' –
@TheDarkKnight,maxLength不靈活。 – kzjfr0