01.
private
Integer[] mThumbIds = { R.drawable.one, R.drawable.one,
02.
R.drawable.two, R.drawable.two , R.drawable.three,
03.
R.drawable.three, R.drawable.four, R.drawable.four,
04.
R.drawable.five , R.drawable.five , R.drawable.six,
05.
R.drawable.six , R.drawable.seven , R.drawable.seven,
06.
R.drawable.eight , R.drawable.eight , R.drawable.nine,
07.
R.drawable.nine , R.drawable.ten , R.drawable.ten };
08.
09.
int
opened =
0
;
10.
int
firstClick, secondClick;
11.
int
numColumns =
5
;
12.
13.
@Override
14.
15.
public
void
onCreate(Bundle savedInstanceState) {
16.
super
.onCreate(savedInstanceState);
17.
setContentView(R.layout.gridview);
18.
19.
shuffleArray(mThumbIds);
20.
21.
android.widget.GridView gridview = (android.widget.GridView) findViewById(R.id.gridview1);
22.
gridview.setNumColumns(numColumns);
23.
gridview.setVerticalSpacing (
2
);
24.
gridview.setHorizontalSpacing (
2
);
25.
gridview.setAdapter(
new
ImageAdapter(
this
));
26.
gridview.setOnItemClickListener(
this
);
27.
}
28.
29.
private
void
shuffleArray(Integer[] mThumbIds2) {
30.
Random rnd =
new
Random();
31.
for
(
int
i = mThumbIds2.length -
1
; i >=
0
; i--) {
32.
int
index = rnd.nextInt(i +
1
);
33.
34.
int
a = mThumbIds2[index];
35.
mThumbIds2[index] = mThumbIds2[i];
36.
mThumbIds2[i] = a;
37.
38.
39.
if
(a==
0
){
40.
Toast.makeText(GridView.
this
,
"จบเกม!"
,
41.
Toast.LENGTH_SHORT).show();
42.
}
43.
44.
}
45.
}
46.
47.
public
void
onItemClick(AdapterView<?> parent, View v,
int
position,
long
id) {
48.
49.
imageView = (ImageView) v;
50.
imageView.setAdjustViewBounds(
true
);
51.
opened++;
52.
53.
final
Handler handler =
new
Handler();
54.
if
(opened ==
1
) {
55.
firstClick = position;
56.
firstView = (ImageView) v;
57.
imageView.setImageResource(mThumbIds[position]);
58.
}
else
if
(opened ==
2
) {
59.
if
( firstClick != position )
60.
secondClick = position;
61.
imageView.setImageResource(mThumbIds[position]);
62.
imageView.setClickable(
false
);
63.
if
(mThumbIds[firstClick].compareTo(mThumbIds[secondClick]) ==
0
) {
64.
Toast.makeText(GridView.
this
,
"เก่งมาก!"
,
65.
Toast.LENGTH_SHORT).show();
66.
handler.postDelayed(removeImage,
800
);
67.
}
else
{
68.
handler.postDelayed(cardBack,
600
);
69.
}
70.
}
71.
}
72.
private
Runnable removeImage =
new
Runnable() {
73.
public
void
run() {
74.
imageView.setVisibility(View.GONE);
75.
firstView.setVisibility(View.GONE);
76.
opened =
0
;
77.
}
78.
};
79.
80.
private
Runnable cardBack =
new
Runnable() {
81.
public
void
run() {
82.
imageView.setImageResource(R.drawable.zero);
83.
firstView.setImageResource(R.drawable.zero);
84.
opened =
0
;
85.
}
86.
};