安卓软件开发中怎么让一个EditText自动换行

安卓软件开发中怎么让一个EditText自动换行而且要让他显示在左上角上像window的记事本一样我想写格记事本软件...... 安卓软件开发中怎么让一个EditText自动换行而且要让他显示在左上角上 像window的记事本一样 我想写格记事本软件... 展开
 我来答
51buyhost
2012-02-07 · TA获得超过818个赞
知道小有建树答主
回答量:613
采纳率:0%
帮助的人:536万
展开全部

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 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8440
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部

  默认的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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式