遇到的问题如下:
1.在xml里自定义view报异常。
public GameView(Context context, AttributeSet attrs) {//注:在xml里使用这一个类必须得添加该构造函数
super(context, attrs);
paint = new Paint();
//在view里获取分辨率
DisplayMetrics dm = context.getApplicationContext().getResources().getDisplayMetrics();
screenWidth = dm.widthPixels;
screenHeight = dm.heightPixels;
//per_Row = screenHeight/ ROW;
//per_Col = (screenWidth - 20)/ COL;
//init();
//canvas = new Canvas();
bmp = new Bitmap[id.length];
setFocusable(true);
setFocusableInTouchMode(true);
}
2.xml自定义view大小如何确定
3.代码修改图片合适方法;protected void onSizeChanged(int w, int h, int oldw, int oldh) { // TODO Auto-generated method stub width = w / ROW; height = h / COL; System.out.println("每列的宽度为:" + width); super.onSizeChanged(w, h, oldw, oldh); }
Bitmap bitmap = Bitmap.createBitmap((int) width, (int) height, Bitmap.Config.ARGB_8888); Drawable drw; Canvas canvas1 = new Canvas(bitmap); drw = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), grid[i][j])); drw.setBounds(0, 0, (int)width, (int)height); drw.draw(canvas1); if(grid[i][j] != 0) canvas.drawBitmap(bitmap, i * width, j * height, null);
4.在view中获取屏幕分辨率DisplayMetrics dm = context.getApplicationContext().getResources().getDisplayMetrics(); screenWidth = dm.widthPixels; screenHeight = dm.heightPixels;
5.统计字符串宽度:Paint paint= new Paint(); paint.setColor(Color.RED); String str = "当前分数为" + score + " 剩余时间: " + time + " 级别:" + lv; canvas.drawText(str, (screenWidth - new Paint().measureText(str))/2, 20, paint);
好了,就这么多了,以后遇到再继续补充