} else {
return -1;
}
}
}
2. Cell类的设计:Cell用来表示游戏中的小格子
- Cell表示游戏中移动的小格子,格子的颜色、显示数字等属性都在对象中进行设置,Cell类如下:
public class Cell extends FrameLayout {
//显示数字的TextView
private TextView cellShowText;
//显示的数字
private int digital;
public Cell(Context context) {
super(context);
}
public Cell(@NonNull Context context, int leftMargin, int topMargin, int bottomMargin) {
super(context);
init(context, leftMargin, topMargin, bottomMargin);
}
//初始化
private void init(@NonNull Context context, int leftMargin, int topMargin, int bottomMargin) {
cellShowText = new TextView(context);
// 不同难度设置不同字体大小
switch (Config.GRIDColumnCount) {
case 4:
cellShowText.setTextSize(36);
break;
case 5:
cellShowText.setTextSize(28);
break;
case 6:
cellShowText.setTextSize(20);
break;
default:
cellShowText.setTextSize(36);
break;
}
cellShowText.setGravity(Gravity.CENTER);
// 抗锯齿
cellShowText.getPaint().setAntiAlias(true);
// 粗体
cellShowText.getPaint().setFakeBoldText(true);
// 颜色
cellShowText.setTextColor(ContextCompat.getColor(context, R.color.colorWhite));
// 填充整个父容器
LayoutParams params = new LayoutParams(-1, -1);
params.setMargins(leftMargin, topMargin, 0, bottomMargin);
addView(cellShowText, params);
setDigital(0);
}
//获取卡片
public TextView getItemCell() {
return cellShowText;
}
//获取数字
public int getDigital() {
return digital;
}
//设置数字
public void setDigital(int digital) {
this.digital = digital;
cellShowText.setBackgroundResource(getBackgroundResource(digital));
if (digital <= 0) {
cellShowText.setText("");
} else {
cellShowText.setText(String.valueOf(digital));
}
}
//根据数字获取相应的背景
private int getBackgroundResource(int number) {
switch (number) {
case 0:
return