简单实现简单实现Android数独游戏数独游戏
本文实例为大家分享了Android数独游戏的具体代码,供大家参考,具体内容如下
实现了点击了相关的单元格之后会显示出对话框提示可选数字。
原始的自定义对话框仍旧不能满足我们的要求,原始的自定义对话框只能够生成Bulider对象 然后通过LayoutInflater获取相应
的View 对象
(其实就是Layout 布局文件)
其实也是可以的,只是我们不能再次进行一些其他的操作了,比如说我们即使设置了TableLayout但是我们不能够在上面完成
任何操作,因为并不允许使用
自定义方法设置相关功能,只能推出一些新颖的自定义显示控件而已了。
至于控件,任何控件都可以复写
并且可以自定义View控件 当然也是可以自定义Button控件的。
具体代码:
package com.example.shudu;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.FontMetrics;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.TextView;
public class ShuduView extends View{
//单元格的宽度和高度
private float width;
private float height;
private Game game = new Game();
public ShuduView(Context context) {
super(context);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
//计算当前 单元格的宽度和高度
this.width = w/9f;
this.height = h/9f;
super.onSizeChanged(w, h, oldw, oldh);
}
@Override
protected void onDraw(Canvas canvas) {
//生成用于绘制当前 背景色的画笔
Paint backgroundPaint = new Paint();
//设置背景颜色画笔的颜色
backgroundPaint.setColor(getResources().getColor(R.color.shudu_background));
//绘制背景色 左边界都是0 右边界位置是宽下边界是高 覆盖整个屏幕
canvas.drawRect(0,0,getWidth(),getHeight(),backgroundPaint);
Paint darkPaint = new Paint();
darkPaint.setColor(getResources().getColor(R.color.shudu_dark));
Paint hilitePaint = new Paint();
hilitePaint.setColor(getResources().getColor(R.color.shudu_hilite));