解决方案 »
- 类似微信添加表情图片的底层菜单怎么实现
- 实现的九宫格图片不能显示和不同的点击事件求帮忙
- Your project contains error(s) eclipse如何查看哪里出错?
- android 条形码 手机像素低不能识别
- android 编译问题 (找不到文件)
- 蓝牙已配对的设备,是保存在哪里,
- new File[0]怎么理解?
- post传递数组 求帮助
- android webview 开发 红米/三星Note分辨率错误
- 求助:安卓判断两个图片是否有相同的部分,如果有就将相同部分融合,并将两个图片拼接成一个图片
- 能不能在mediaPlayer.setOnCompletionListener中release 这个mediaPlayer对象自身
- 求教~~几个问题~~
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
public class TestSurfaceViewActivity extends Activity {
SurfaceView sfv;
SurfaceHolder sfh;
Canvas ca1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); sfv = (SurfaceView) this.findViewById(R.id.SurfaceView01);
sfh = sfv.getHolder();
carr1 car1 =new carr1(this);
sfh.addCallback(car1);
ca1=sfh.lockCanvas(null);//此句报错,返回null……
//也使用ca1=sfh.lockCanvas(new Rect(0,0,200,200));也返回null
Paint mPaint = new Paint();
mPaint.setColor(Color.GREEN);
canvas.drawLine(0,0,200,200,mPaint);
srf.unlockCanvasAndPost(ca1);
}
}
mSurfaceHolder = this.getHolder();
// 添加回调 函数
// 注意这里这句 mSurfaceHolder.addCallback(this)这句执行完了之后
// 马上就会回调 surfaceCreated方法了 然后开启线程 执行绘图方法这里这个执行顺序要搞清楚
mSurfaceHolder.addCallback(this);
protected void Draw() { // 锁定画布,得到canvas 用SurfaceHolder对象的lockCanvas方法
sCanvas = mSurfaceHolder.lockCanvas();
if (mSurfaceHolder == null || sCanvas == null) {
return;
}
UpdateGame();
RenderGame();
// 绘制后解锁,绘制后必须解锁才能显示
mSurfaceHolder.unlockCanvasAndPost(sCanvas);
}
(mSurfaceHolder = this.getHolder();//this指明此类是surfaceview的子类
surfaceHolder.addCallback(this)//这句的this指明此类继承surfaceHolder.addCallback接口)但我想问的是,如果我想使用 surfaceview 标准件,我在xml中定义<surfaceview></surfaceview>
之后再activity 的oncreated中调用setcontentview(R.Layout.main)后理应由系统自动调用surfaceview标准件的构成方法才对,所以我在surfaceview.gethodler().getsurface()后可以在调试中看见msurface是存在的,因此才困惑,因为lockcanvas返回null,但关联的surface已经生成了……