此小demo是我在论坛里面帮人解决问题的时候收集的 首先创建一个继承View的类: import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.util.Log; import android.view.View; public class ReadView extends View { // 屏幕宽度 int screenWidth; // 屏幕高度 int screenHeight; // 文字大小 int word_Size = 20; // 行距 int Leading = 2; // 当前行数 int Now_LineNumber = 1; // 文字 String str = "jiyuhang 中hangm yujia =lljyhjyhjyjjjmmmqssssmmmmmmskkkjdjh,hdjj,jiyuhang 中hangm "; // 当前文字 int k = 0; // 当前页数 int now_page = 0; // 每页字数 int a[] = new int[10]; // 字符总长度 int word_long = str.length(); // 实例化绘制方法 Paint m_paint; public ReadView(Context context, int width, int height) { super(context); // TODO Auto-generated constructor stub screenWidth = width; screenHeight = height; setFocusable(true); m_paint = new Paint(Paint.ANTI_ALIAS_FLAG); } protected void onDraw(Canvas canvas) { super.onDraw(canvas); m_paint.setColor(Color.RED); // canvas.drawLine(200f, 200f, 200f, 300f, m_paint); // 每页行数 int line_number = (screenHeight / word_Size) - 1; // 文字大小 m_paint.setTextSize(word_Size); canvas.drawARGB(255, 255, 255, 255); // 字符绘制Y坐标 int y = 0; Log.i("screenHeight", "" + screenHeight); Log.i("screenWidth", "" + screenWidth); while (this.Now_LineNumber < line_number) { Log.i(">>>>>>>>>>>>>>>>while<<<<<<<<<<<<<<<<", ">>>>>>>>>>>>>>>>>>>loop == true????"); String str2 = ""; if (this.k >= word_long || y >= screenHeight) { break; } for (;; k++) { Log.i("KKKKKKKKKK============",""+k); if (k < word_long) { str2 += str.substring(k, k + 1); } else { break; } float textWidth = m_paint.measureText(str2); if (textWidth >= screenWidth) { if (textWidth > screenWidth) { int beyond_long = str2.length(); str2 = str2.substring(0, beyond_long - 1); break; } break; } } // y坐标每次增加字符高度(即字体大小+行距) y += word_Size + Leading; // 绘制文字 canvas.drawText(str2, 2, y, m_paint); Now_LineNumber++; } } } 创建一个Activity显示改View: public class ReadActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int screenWidth = dm.widthPixels; int screenHeight = dm.heightPixels; ReadView readView = new ReadView(this, screenWidth, screenHeight); setContentView(readView); } }