我想在一个SurfaceView中画图,每当SurfaceHolder变化时就重新绘制网格,但是老实现不了
解决方案 »
- android软键盘弹出后,编辑文字时,软键盘上面的输入框会跳动???
- 求各位大神帮帮忙。老师催的急 ,谢谢了。看看是什么问题怎么解决
- 求教android中 分享到renren和tencent微博的问题
- ExitText复制粘贴
- adb logcat -b 选项是什么意思?
- listview的焦点怎样人性化的分配
- 为毛在我1.6的机子上getLastKnowLocation(provider)不为空,在2.1的就为空
- android textview聚焦后边框发光效果
- Android应用百度地图开发定位的问题,新手求大神帮忙看下
- 求助!android虚拟机端访问电脑的tomcat超时!
- 关于android中接受webservice转化json对象的问题~
- android调用WebService的问题
// private String dataStr = new String();
private boolean enRead = false;
public TextView tvDeviceName;
public static TextView tvDeviceStatus; private SurfaceHolder holder; private BTReadThread mReadThread = new BTReadThread(0);
private Handler msgHandler;
private DrawECGWaveForm mECGWF; private String revTmpStr = new String(); public List<Integer> ECGDataList = new ArrayList<Integer>();
public boolean ECGDLIsAvailable = true; private int ECGData = 0; private int WIDTH; private int HEIGHT;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 隐藏标题
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.rtmonitor);
// Init Resources
tvDeviceName = (TextView)findViewById(R.id.tvDeviceName);
tvDeviceStatus = (TextView)findViewById(R.id.tvDeviceStatus);
final SurfaceView sfvECG = (SurfaceView)findViewById(R.id.sfvECG);
holder = sfvECG.getHolder(); WIDTH = sfvECG.getWidth();
HEIGHT = sfvECG.getHeight();
mECGWF = new DrawECGWaveForm(sfvECG); tvDeviceStatus.setText("Standby");
holder.addCallback(new Callback() {
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Canvas canvas = holder.lockCanvas(new Rect(0, 80, 260, 530));
// 绘制白色背景
canvas.drawColor(Color.BLACK);
Paint p = new Paint(); p.setStrokeWidth(2);
p.setColor(Color.YELLOW);
// 绘制坐标轴
int length = WIDTH / 10;// 画多少条竖线,竖线之间宽度为
int bound = HEIGHT / 10;// 竖长
for (int i = 0; i < bound; i++) {
for (int j = 0; j < length; j++) {
/*
* 画竖线
*/
canvas.drawLine(j * length, 0, j * length, HEIGHT, p);
/*
* 画横线
*/
canvas.drawLine(0, i * bound, WIDTH, i * bound, p);
}
}
// canvas.drawLine(X_OFFSET , centerY , WIDTH , centerY , p);
// canvas.drawLine(X_OFFSET , 40 , X_OFFSET , HEIGHT , p);
holder.unlockCanvasAndPost(canvas);
holder.lockCanvas(new Rect(0, 0, 0, 0));
holder.unlockCanvasAndPost(canvas);
} @Override
public void surfaceCreated(final SurfaceHolder myHolder) {
} @Override
public void surfaceDestroyed(SurfaceHolder holder) { }
}); try {
if (BTConnectActivity.mBTSocket.getInputStream() != null) {
enRead = true;
mReadThread.start();
}
} catch (Exception e) {
e.printStackTrace();
}
这个是部分代码,但是holder添加的callback老是不能回调 不知道为什么