网上搜来的例子代码,在2.2以上运行的好好的,2.1上什么都不显示。为何以及怎么办? @Override
public void onDraw(Canvas canvas) {
Log.d("ondraw", "lefutott");
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTextSize(20);
canvas.drawText("Hello Android! Fill...", 50, 230,paint);
我正在使用《Csdn收音机》第一时间获取最新动态!
public void onDraw(Canvas canvas) {
Log.d("ondraw", "lefutott");
Paint paint = new Paint();
paint.setStyle(Paint.Style.FILL);
paint.setAntiAlias(true);
paint.setTextSize(20);
canvas.drawText("Hello Android! Fill...", 50, 230,paint);
我正在使用《Csdn收音机》第一时间获取最新动态!
package com.wjh.demon_5;import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.view.KeyEvent;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.SurfaceHolder.Callback;public class MainView extends SurfaceView implements Callback,Runnable{
Thread gameThread = null;
boolean isGame = true;
SurfaceHolder holder = null;
Paint forePaint = null;
Paint backPaint = null;
int keyCode = -1;
boolean isKeyDown = false;
public int m_nWidth = 50; //显示宽度
public Typeface m_nTypeFace = null; //存储字体
public MainView(Context context) {
super(context);
// TODO Auto-generated constructor stub
setFocusable(true);
getHolder().addCallback(this);
holder = this.getHolder();
backPaint = new Paint();
backPaint.setColor(Color.BLACK);
forePaint = new Paint();
forePaint.setTypeface(Typeface.DEFAULT_BOLD);
forePaint.setTextSize(20);
forePaint.setColor(Color.RED);
}
@Override
public void run() {
// TODO Auto-generated method stub
while(isGame)
{
input();
logic();
doDraw();
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//开始游戏主线程
public void start()
{
if(gameThread == null)
{
gameThread = new Thread(this);
gameThread.start();
}
}
//停止游戏主线程
public void stop()
{
isGame = false;
if(gameThread != null)
{
try {
gameThread.join();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//输入判断
public void input()
{
if( keyCode == KeyEvent.KEYCODE_DPAD_UP && isKeyDown)
{
m_nWidth = m_nWidth +(int)forePaint.getTextSize();
isKeyDown = false;
}
//如果按下方向键的下键,则调整当前行的位置
else if(keyCode == KeyEvent.KEYCODE_DPAD_DOWN && isKeyDown)
{
m_nWidth = m_nWidth - (int)forePaint.getTextSize();
isKeyDown = false;
}
}
//逻辑判断
public void logic()
{
}
public void doDraw()
{
System.err.println("doDraw");
Canvas c = null;
try
{
c = holder.lockCanvas();
synchronized (holder) {
paint(c);
}
}finally{
if(c != null)
{
holder.unlockCanvasAndPost(c);
}
}
}
//画图
public void paint(Canvas canvas)
{
System.err.println("paint");
//清贫
canvas.drawRect(0, 0, getWidth(), getHeight(),backPaint);
TextAjust.AjustDrawString(canvas,forePaint,
"我要自动换行我要自动换行我要自动换行我要自动换行",
m_nWidth, 50, 50, 30 );
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
start();
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
// TODO Auto-generated method stub
stop();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
//如果按下方向键的上键,则调整当前行的位置
this.keyCode = keyCode;
isKeyDown = true; return true;
}
}贴图片很累吧,用《Csdn收音机》截图功能轻松解决!