安卓软件开发中怎么让一个EditText自动换行
package com.example.android.helloactivity;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.Rect;
import android.text.TextPaint;
import android.util.AttributeSet;
import android.view.Display;
import android.view.KeyEvent;
import android.view.WindowManager;
import android.widget.EditText;
public class MyEditor extends EditText {
int screenWidth = 0;
int screenHeight = 0;
int currentHeight = 0;
Context context = null;
public MyEditor(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
currentHeight = getHeight();
WindowManager windowManager = (WindowManager) this.context
.getSystemService(Context.WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
//取得屏幕宽度和高度
screenWidth = display.getWidth();
screenHeight = display.getHeight();
setScrollBarStyle(DRAWING_CACHE_QUALITY_AUTO);
/* Rect rect = new Rect();
Paint p = new Paint();
p.setTypeface(getTypeface());
p.getTextBounds("A", 0, 1, rect);
fontWidth = rect.width();*/
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
TextPaint paint = getPaint();
float len = paint.measureText(getText().toString());
//计算得到当前应该有几行
int line = ((int)len / screenWidth + 1);
getEllipsize() ;
setFrame(0, 0, screenWidth, line * 60);
// setHeight(line*60) ;
// setMarqueeRepeatLimit(line) ;
// setMaxHeight(line*60) ;
// setLines(line) ;
// setBackgroundColor(Color.WHITE) ;
return false;
}
}
能给我解释下什么意思吗 我看不懂...谢谢了
2015-09-09 · 知道合伙人软件行家
默认的edittext是不会自动换行的,需要通过代码实现。
EditText editText = new EditText(this);
//设置EditText的显示方式为多行文本输入
editText.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
//文本显示的位置在EditText的最上方
editText.setGravity(Gravity.TOP);
editText.setText("1233333333333333333333333333333333333333333333333333333333333333333333333333");
//改变默认的单行模式
editText.setSingleLine(false);
//水平滚动设置为False
editText.setHorizontallyScrolling(false);