安卓翻翻乐小游戏代码怎么写
时间: 2023-07-10 13:40:53 浏览: 146
以下是一个简单的安卓翻翻乐小游戏的代码示例:
1. 首先,在XML布局文件中创建一个GridView,用于呈现游戏的方格:
```xml
<GridView
android:id="@+id/gridview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:numColumns="4"
android:verticalSpacing="5dp"
android:horizontalSpacing="5dp"
android:padding="5dp"
android:stretchMode="columnWidth"
android:gravity="center" />
```
2. 在Java代码中创建一个Adapter来为GridView提供数据:
```java
public class GridAdapter extends BaseAdapter {
private Context mContext;
private int[] mImageIds;
private boolean[] mIsFlipped;
private int mFlippedCount;
private int mFirstFlippedIndex;
private int mSecondFlippedIndex;
public GridAdapter(Context context, int[] imageIds) {
mContext = context;
mImageIds = imageIds;
mIsFlipped = new boolean[imageIds.length];
mFlippedCount = 0;
mFirstFlippedIndex = -1;
mSecondFlippedIndex = -1;
}
@Override
public int getCount() {
return mImageIds.length;
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) {
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(150, 150));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
if (mIsFlipped[position]) {
imageView.setImageResource(mImageIds[position]);
} else {
imageView.setImageResource(R.drawable.back);
}
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!mIsFlipped[position]) {
flipCard(position);
}
}
});
return imageView;
}
private void flipCard(int position) {
mIsFlipped[position] = true;
mFlippedCount++;
if (mFirstFlippedIndex == -1) {
mFirstFlippedIndex = position;
} else {
mSecondFlippedIndex = position;
if (mImageIds[mFirstFlippedIndex] == mImageIds[mSecondFlippedIndex]) {
// Matched
mIsFlipped[mFirstFlippedIndex] = true;
mIsFlipped[mSecondFlippedIndex] = true;
mFirstFlippedIndex = -1;
mSecondFlippedIndex = -1;
mFlippedCount = 0;
} else {
// Not matched
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
mIsFlipped[mFirstFlippedIndex] = false;
mIsFlipped[mSecondFlippedIndex] = false;
mFirstFlippedIndex = -1;
mSecondFlippedIndex = -1;
mFlippedCount = 0;
notifyDataSetChanged();
}
}, 1000);
}
}
notifyDataSetChanged();
}
}
```
3. 在Activity中初始化GridView并设置Adapter:
```java
public class MainActivity extends AppCompatActivity {
private int[] mImageIds = { R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4,
R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8,
R.drawable.image1, R.drawable.image2, R.drawable.image3, R.drawable.image4,
R.drawable.image5, R.drawable.image6, R.drawable.image7, R.drawable.image8 };
private GridView mGridView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mGridView = findViewById(R.id.gridview);
mGridView.setAdapter(new GridAdapter(this, mImageIds));
}
}
```
这个示例只是一个简单的翻翻乐小游戏,你可以根据需要添加更多的功能和特性。