Android Studio 抽卡小游戏
https://download.csdn.net/download/weixin_45609946/86405765
Hello 大家好,此项目是我学习Android时完成的大作业。
首先我来介绍一下此项目,此项目功能包括
实现登录注册
实现开屏动画
卡牌抽取跳转展示,震动反馈,视频播放,背景音乐,页面跳转
计时器,颜色选取,画板,笔刷粗细调节
SQL数据库,数据储存,读取,删除
流程展示
部分源码分享
首先分享的是MySQL数据库代码
package com.example.myapplication;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;import androidx.annotation.Nullable;public class Mysql extends SQLiteOpenHelper {public Mysql(@Nullable Context context, @Nullable String name, @Nullable SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);}@Overridepublic void onCreate(SQLiteDatabase db) {String sql = "create table logins(id integer primary key autoincrement,usname text,uspwd text)";db.execSQL(sql);}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
}
2.注册数据源码
package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.ContentValues;
import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;import com.example.myapplication.MainActivity;public class Register extends AppCompatActivity {EditText usename,usepwd,usepwd2;Button submit;Mysql mysql;SQLiteDatabase db;SharedPreferences sp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_register);usename = this.findViewById(R.id.usename); //用户名编辑框usepwd = this.findViewById(R.id.usepwd); //设置初始密码编辑框usepwd2 = this.findViewById(R.id.usepwd2); //二次输入密码编辑框submit = this.findViewById(R.id.submit); //注册按钮mysql = new Mysql(this,"Userinfo",null,1); //建数据库db = mysql.getReadableDatabase();sp = this.getSharedPreferences("useinfo",this.MODE_PRIVATE);submit.setOnClickListener(new View.OnClickListener() {boolean flag = true; //判断用户是否已存在的标志位@Overridepublic void onClick(View v) {String name = usename.getText().toString(); //用户名String pwd01 = usepwd.getText().toString(); //密码String pwd02 = usepwd2.getText().toString(); //二次输入的密码//性别if(name.equals("")||pwd01 .equals("")||pwd02.equals("")){Toast.makeText(Register.this, "用户名或密码不能为空!!", Toast.LENGTH_LONG).show();}else{Cursor cursor = db.query("logins",new String[]{"usname"},null,null,null,null,null);while (cursor.moveToNext()){if(cursor.getString(0).equals(name)){flag = false;break;}}if(flag==true){ //判断用户是否已存在if (pwd01.equals(pwd02)) { //判断两次输入的密码是否一致,若一致则继续,不一致则提醒密码不一致ContentValues cv = new ContentValues();cv.put("usname",name);cv.put("uspwd",pwd01);db.insert("logins",null,cv);SharedPreferences.Editor editor = sp.edit();editor.putString("usname",name);editor.putString("uspwd",pwd01);editor.commit();Intent intent = new Intent();intent.setClass(Register.this, MainActivity.class); //跳转到登录页面startActivity(intent);Toast.makeText(Register.this, "注册成功!", Toast.LENGTH_LONG).show();}else {Toast.makeText(Register.this, "密码不一致!", Toast.LENGTH_LONG).show(); //提示密码不一致}}else{Toast.makeText(Register.this, "用户已存在!", Toast.LENGTH_LONG).show(); //提示密码不一致}}}});}
}
3.登录界面
package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.content.SharedPreferences;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity9 extends AppCompatActivity implements View.OnClickListener {EditText name, pwd;Button btnlogin, btnreg;Mysql mysql;SQLiteDatabase db;SharedPreferences sp1, sp2;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main9);name = this.findViewById(R.id.name); //用户名输入框pwd = this.findViewById(R.id.pwd); //密码输入框btnlogin = this.findViewById(R.id.login); //登录按钮btnreg = this.findViewById(R.id.reg); //注册按钮sp1 = this.getSharedPreferences("useinfo", this.MODE_PRIVATE);sp2 = this.getSharedPreferences("username", this.MODE_PRIVATE);name.setText(sp1.getString("usname", null));pwd.setText(sp1.getString("uspwd", null));mysql = new Mysql(this, "Userinfo", null, 1);//建数据库或者取数据库db = mysql.getReadableDatabase();btnlogin.setOnClickListener(this);btnreg.setOnClickListener(this);//登录事件}@Overridepublic void onClick(View v) {if ((v.getId() == R.id.reg)){Intent z = new Intent(this, Register.class);startActivity(z);Toast.makeText(MainActivity9.this,"前往注册!",Toast.LENGTH_SHORT).show();}if ((v.getId() == R.id.login)){String username = name.getText().toString();String password = pwd.getText().toString(); //获取用户输入的用户名和密码//查询用户名和密码相同的数据Cursor cursor = db.query("logins",new String[]{"usname","uspwd"}," usname=? and uspwd=?",new String[]{username,password},null,null,null);int flag = cursor.getCount(); //查询出来的记录项的条数,若没有该用户则为0条if(flag!=0){ //若查询出的记录不为0,则进行跳转操作//设置页面跳转SharedPreferences.Editor editor = sp2.edit();cursor.moveToFirst(); //将光标移动到position为0的位置,默认位置为-1String loginname = cursor.getString(0);editor.putString("Loginname",loginname);editor.commit(); //将用户名存到SharedPreferences中Intent x = new Intent(this, MainActivity10.class);startActivity(x);}else{Toast.makeText(MainActivity9.this,"用户名或密码错误!",Toast.LENGTH_LONG).show();//提示用户信息错误或没有账号}}}
}
4. 开屏动画源码
package com.example.myapplication;
import androidx.appcompat.app.ActionBar;
import androidx.appcompat.app.AppCompatActivity;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.widget.ImageView;
import android.os.Bundle;
import android.widget.TextView;import com.example.myapplication.MainActivity;public class MainActivity10 extends AppCompatActivity {private ImageView welcomeImg = null;private SharedPreferences sp;private TextView showhello;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main10);//ActionBar actionBar = getSupportActionBar();//消除APP该Activity界面标题栏if(actionBar!=null){ //消除APP该Activity界面标题栏actionBar.hide(); //消除APP该Activity界面标题栏} //消除APP该Activity界面标题栏welcomeImg = (ImageView) findViewById(R.id.imageView4);AlphaAnimation anima = new AlphaAnimation(0.3f, 1.0f);anima.setDuration(3000);// 设置简单动画的显示时间welcomeImg.startAnimation(anima);anima.setAnimationListener(new AnimationImpl());sp = this.getSharedPreferences("username", this.MODE_PRIVATE); //获取sharepreferencesshowhello = this.findViewById(R.id.textView); //显示欢迎showhello.setText("欢迎光临:"+sp.getString("Loginname","")); //获取用户名}private class AnimationImpl implements AnimationListener {@Overridepublic void onAnimationStart(Animation animation) {welcomeImg.setBackgroundResource(R.drawable.gjok);}@Overridepublic void onAnimationEnd(Animation animation) {skip(); // 动画结束后跳转到别的页面}@Overridepublic void onAnimationRepeat(Animation animation) {}}private void skip() {startActivity(new Intent(this, MainActivity.class));//动画开屏后返回APP主界面finish(); //结束动画Activity进程}
}
5.主界面
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.os.Vibrator;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.RadioGroup;
import android.widget.SimpleCursorAdapter;
import android.widget.TextView;
import android.widget.ThemedSpinnerAdapter;import java.util.Random;
public class MainActivity extends AppCompatActivity implements MediaPlayer.OnCompletionListener,CompoundButton. OnCheckedChangeListener {private ImageView TP1, TP2, TP3;private Button BTN_START, BTN_FINISH,btr,btr1,btr2;private TextView RESULT;private CheckBox chk;static boolean isPlay=true;private MyDatabaseHelper dbHelper;private int[] img = {R.drawable.z2, R.drawable.z3, R.drawable.z1};private MediaPlayer mper2;private MediaPlayer mper3;private MediaPlayer mper6;private MediaPlayer mper8;int HUIYE,QIANHUAN,GUJIAN,ANY,t;private Random a = new Random();//随机数private int b, c, d;private Handler handler= new Handler();private Runnable runnable=new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stub//要做的事情b = a.nextInt(3);c = a.nextInt(3);d = a.nextInt(3);TP1.setImageResource(img[b]);//放置随机图片TP2.setImageResource(img[c]);TP3.setImageResource(img[d]);handler.postDelayed(this, 20);}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);show();dbHelper = new MyDatabaseHelper(this,"BooKStore.db",null,2);SQLiteDatabase db = dbHelper.getReadableDatabase();mper2 = MediaPlayer.create(this,R.raw.any1);mper2.setOnCompletionListener(this);mper2.setLooping(false);mper3 = MediaPlayer.create(this,R.raw.hy1);mper3.setOnCompletionListener(this);mper3.setLooping(false);mper6 = MediaPlayer.create(this,R.raw.gjzc);mper6.setOnCompletionListener(this);mper6.setLooping(false);PlayMusic();Intent z=new Intent(this, MainActivity2.class);Intent x=new Intent(this, MainActivity3.class);Intent v=new Intent(this, MainActivity4.class);Intent q=new Intent(this, MainActivity5.class);Intent w=new Intent(this, MainActivity6.class);Intent e=new Intent(this, MainActivity7.class);Intent r=new Intent(this, MainActivity8.class);Intent p=new Intent(this, MainActivity11.class);Intent ooo=new Intent(this, MainActivity12.class);Intent jjj=new Intent(this, MainActivity13.class);BTN_START.setOnClickListener(new View.OnClickListener() { //开始按钮监听事件@Overridepublic void onClick(View view) {handler.postDelayed(runnable, 20);//定时器启动Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);long[] pattern1 = {10,10};vibrator.vibrate(pattern1, 0);t=t+5;}});BTN_FINISH.setOnClickListener(new View.OnClickListener() { //结束按钮监听事件@Overridepublic void onClick(View view) {handler.removeCallbacks(runnable);//定时器结束if (img[b] == img[c] && img[b] == img[d] && img[c] == img[d] ){if(img[b]==img[0]){RESULT.setText("阿尼亚:哇库瓦库");ANY=ANY+3;ContentValues values=new ContentValues();values.put("ANY",ANY);db.insert("Book",null,values);values.clear();startActivity(x);Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}else if(img[b]==img[1]){RESULT.setText("古见同学想和你做朋友");GUJIAN=GUJIAN+3;ContentValues values=new ContentValues();values.put("GJTX",GUJIAN);db.insert("Book",null,values);values.clear();startActivity(v);Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}else if(img[b]==img[2]){RESULT.setText("辉夜好可爱哟耶耶耶");HUIYE=HUIYE+3;ContentValues values=new ContentValues();values.put("HYDXJ",HUIYE);db.insert("Book",null,values);values.clear();startActivity(q);Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}}elseif (img[b] == img[c]) {if(img[b]==img[0]){RESULT.setText("阿尼亚想去游乐园");ANY=ANY+2;ContentValues values=new ContentValues();values.put("ANY",ANY);db.insert("Book",null,values);values.clear();startActivity(w);mper2.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if(img[b]==img[1]){RESULT.setText("古见同学对你说:加油");GUJIAN=GUJIAN+2;ContentValues values=new ContentValues();values.put("GJTX",GUJIAN);db.insert("Book",null,values);values.clear();startActivity(e);mper6.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if(img[b]==img[2]){RESULT.setText("辉夜大小姐居然有替身???");HUIYE=HUIYE+2;ContentValues values=new ContentValues();values.put("HYDXJ",HUIYE);db.insert("Book",null,values);values.clear();startActivity(r);mper3.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}}elseif (img[b] == img[d]) {if (img[b] == img[0]) {RESULT.setText("阿尼亚想去游乐园");ANY=ANY+2;ContentValues values=new ContentValues();values.put("ANY",ANY);db.insert("Book",null,values);values.clear();startActivity(w);mper2.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if (img[b] == img[1]) {RESULT.setText("古见同学对你说:加油");GUJIAN=GUJIAN+2;ContentValues values=new ContentValues();values.put("GJTX",GUJIAN);db.insert("Book",null,values);values.clear();startActivity(e);mper6.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if (img[b] == img[2]) {RESULT.setText("辉夜大小姐居然有替身???");HUIYE=HUIYE+2;ContentValues values=new ContentValues();values.put("HYDXJ",HUIYE);db.insert("Book",null,values);values.clear();startActivity(r);mper3.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}}elseif (img[c] == img[d]) {if (img[c] == img[0]) {RESULT.setText("阿尼亚想去游乐园");ANY=ANY+2;ContentValues values=new ContentValues();values.put("ANY",ANY);db.insert("Book",null,values);values.clear();startActivity(w);mper2.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if (img[c] == img[1]) {RESULT.setText("古见同学对你说:加油");GUJIAN=GUJIAN+2;ContentValues values=new ContentValues();values.put("GJTX",GUJIAN);db.insert("Book",null,values);values.clear();startActivity(e);mper6.start();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if (img[c] == img[2]) {RESULT.setText("辉夜大小姐居然有替身???");mper3.start();HUIYE=HUIYE+2;ContentValues values=new ContentValues();values.put("HYDXJ",HUIYE);db.insert("Book",null,values);values.clear();startActivity(r);Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}}else {RESULT.setText("千花:真拿你没办法呢");QIANHUAN=QIANHUAN+3;ContentValues values=new ContentValues();values.put("QIANHUA",QIANHUAN);db.insert("Book",null,values);values.clear();startActivity(z);Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}if(QIANHUAN>=1||GUJIAN>=1||ANY>=1||HUIYE>=1) {btr1.setOnClickListener(new View.OnClickListener() { //开始按钮监听事件@Overridepublic void onClick(View view) {startActivity(jjj);}});}}});btr.setOnClickListener(new View.OnClickListener() { //开始按钮监听事件@Overridepublic void onClick(View view) { startActivity(p);}});btr1.setOnClickListener(new View.OnClickListener(){ //开始按钮监听事件@Overridepublic void onClick(View view) {}});btr2.setOnClickListener(new View.OnClickListener(){ //开始按钮监听事件@Overridepublic void onClick(View view) {startActivity(ooo);}});}private void show() {TP1 = findViewById(R.id.tp1);TP2 = findViewById(R.id.tp2);TP3 = findViewById(R.id.tp3);BTN_START = findViewById(R.id.btn_start);BTN_FINISH = findViewById(R.id.btn_finish);btr = findViewById(R.id.button8);btr1 =findViewById(R.id.button11);btr2 =findViewById(R.id.button13);RESULT = findViewById(R.id.result);chk=findViewById(R.id.checkBox);chk = findViewById(R.id.checkBox);chk.setOnCheckedChangeListener(this);}@Overridepublic void onCompletion(MediaPlayer mediaPlayer) {}@Overridepublic void onCheckedChanged(CompoundButton compoundButton, boolean b) {if (chk.isChecked()) {mper8.pause();}else{mper8.start();}}protected void onStop(){super.onStop();if(mper8!=null){mper8.stop();}}protected void onDestroy(){super.onDestroy();if(mper8!=null){mper8.stop();mper8.release();mper8=null;}}protected void onRestart(){super.onRestart();if(isPlay=true);{PlayMusic();}}private void PlayMusic() {mper8 = MediaPlayer.create(this,R.raw.bjyy);mper8.setOnCompletionListener(this);mper8.setLooping(true);mper8.start();}
}
6.抽卡存放数据库
package com.example.myapplication;import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.widget.Toast;public class MyDatabaseHelper extends SQLiteOpenHelper {public static final String CREATE_BOOK ="Create table book("+"id integer Primary key autoincrement,"+"ANY real," +"QIANHUA real," +"GJTX real," +"HYDXJ real)";public static final String CREATE_CATEGORY ="Create table Category("+"id integer Primary key autoincrement,"+"Category_name text,"+"category_code text)";private Context mContext;//必须要有context才能对数据库进行操作
//name数据库名
//返回一个自定义的Cursor 一般传入null
//当前数据库的版本号 可以对数据库进行操作public MyDatabaseHelper( Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {super(context, name, factory, version);mContext = context;}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL(CREATE_BOOK);db.execSQL(CREATE_CATEGORY);Toast.makeText(mContext,"success",Toast.LENGTH_SHORT).show();}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists Book");db.execSQL("drop table if exists Categeory");onCreate(db);}
}
7.跳转页面
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;public class MainActivity2 extends AppCompatActivity implements View.OnClickListener{private VideoView videoView;private MediaController mediaController;private Button btn;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main2);videoView = findViewById(R.id.QHSJ);mediaController = new MediaController(this);String uri = "android.resource://" + getPackageName() + "/" + R.raw.qhsp;videoView.setVideoURI(Uri.parse(uri));videoView.setMediaController(mediaController);mediaController.setMediaPlayer(videoView);videoView.start();btn=findViewById(R.id.button);btn.setOnClickListener(this);}@Overridepublic void onClick(View view) {finish();}
}
8. 收集卡片
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;import android.annotation.SuppressLint;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity12 extends AppCompatActivity implements View.OnClickListener {private MyDatabaseHelper dbHelper;private TextView QH,HY,GJ,AY;private Button btr12,btr14;private ImageButton gj,any,hy,qh;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main12);dbHelper = new MyDatabaseHelper(this,"BooKStore.db",null,2);QH = findViewById(R.id.QH);HY = findViewById(R.id.HY);GJ = findViewById(R.id.GJ);AY = findViewById(R.id.AY);AY.setText("");QH.setText("");HY.setText("");GJ.setText("");btr12 =findViewById(R.id.button12);btr14 =findViewById(R.id.button14);gj = findViewById(R.id.gjaj);gj.setOnClickListener(this);any = findViewById(R.id.anyaj);any.setOnClickListener(this);hy = findViewById(R.id.hyaj);hy.setOnClickListener(this);qh = findViewById(R.id.qhaj);qh.setOnClickListener(this);btr12.setOnClickListener(this);btr14.setOnClickListener(this);SQLiteDatabase db = dbHelper.getReadableDatabase();Cursor cursor = db.query("Book",null,null,null,null,null,null);if(cursor.moveToFirst()){do{@SuppressLint("Range") int ANY = cursor.getInt(cursor.getColumnIndex("ANY"));@SuppressLint("Range") int GJTX = cursor.getInt(cursor.getColumnIndex("GJTX"));@SuppressLint("Range") int QIANHUA = cursor.getInt(cursor.getColumnIndex("QIANHUA"));@SuppressLint("Range") int HYDXJ = cursor.getInt(cursor.getColumnIndex("HYDXJ"));if(ANY>0)AY.setText(""+ANY);if(QIANHUA>0)QH.setText(""+QIANHUA);if(HYDXJ>0)HY.setText(""+HYDXJ);if(GJTX>0)GJ.setText(""+GJTX);}while (cursor.moveToNext());}}@Overridepublic void onClick(View v) {if ((v.getId() == R.id.button12)) {SQLiteDatabase db = dbHelper.getReadableDatabase();ContentValues values = new ContentValues();values.put("ANY", 0);values.put("GJTX", 0);values.put("QIANHUA", 0);values.put("HYDXJ", 0);db.update("Book", values, null, null);Cursor cursor = db.query("Book", null, null, null, null, null, null);if (cursor.moveToFirst()) {do {@SuppressLint("Range") int ANY = cursor.getInt(cursor.getColumnIndex("ANY"));@SuppressLint("Range") int GJTX = cursor.getInt(cursor.getColumnIndex("GJTX"));@SuppressLint("Range") int QIANHUA = cursor.getInt(cursor.getColumnIndex("QIANHUA"));@SuppressLint("Range") int HYDXJ = cursor.getInt(cursor.getColumnIndex("HYDXJ"));AY.setText("" + ANY);QH.setText("" + QIANHUA);HY.setText("" + HYDXJ);GJ.setText("" + GJTX);} while (cursor.moveToNext());}}if ((v.getId() == R.id.button14)){finish();}if ((v.getId() == R.id.gjaj)){Intent t=new Intent(this, MainActivity4.class);startActivity(t);}if ((v.getId() == R.id.anyaj)){Intent x=new Intent(this, MainActivity3.class);startActivity(x);}if ((v.getId() == R.id.hyaj)){Intent q=new Intent(this, MainActivity5.class);startActivity(q);}if ((v.getId() == R.id.qhaj)){Intent z=new Intent(this, MainActivity2.class);startActivity(z);}}
}
9. 隐藏模式
package com.example.myapplication;import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;public class MainActivity13 extends AppCompatActivity {private TextView QH,HY,GJ,AY;private Button btr14;int i;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main13);QH = findViewById(R.id.QIANHUA);HY = findViewById(R.id.HUIYE);GJ = findViewById(R.id.GUJIAN);AY = findViewById(R.id.ANY);btr14=findViewById(R.id.button14);btr14.setOnClickListener(new View.OnClickListener(){ //开始按钮监听事件@Overridepublic void onClick(View view) {i+=1;if (i==1) {GJ.setText("我每周四都更新哦,大家不要忘记来看啦");}if (i==2){AY.setText("阿尼亚周六更新哦");}if (i==3){HY.setText("我也是周六更新哦");}if (i==4){QH.setText("啊,我和辉夜是在一起哒大家一定要来哦");}if (i==5){GJ.setText("哎,不知道HYF大人会不会来呢");}if (i==6){AY.setText("阿尼亚最喜欢HYF哥哥啦");}if (i==7){HY.setText("Σ(っ °Д °;)っ,HYF大人会来看么!");}if (i==8){QH.setText("辉夜你不要社长了嘛");}if (i==9){HY.setText("咳咳,好吧,大家不要错过我们更新就好了,一定要来看哦");}}});btr14.setOnLongClickListener(new View.OnLongClickListener(){ //开始按钮监听事件@Overridepublic boolean onLongClick(View view) {
finish();
return true;}});}}
10.你画我猜
package com.example.myapplication;
import androidx.appcompat.app.AppCompatActivity;import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Matrix;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemClock;
import android.os.Vibrator;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.SeekBar;
import android.widget.TextView;import java.util.Random;
public class MainActivity11 extends AppCompatActivity{Paint paint;Canvas canvas;ImageView imageview;Bitmap bitmap;TextView tv_stroke,XIANS;Chronometer ch;int startX, startY, endX, endY;private Random a = new Random();//随机数private int b;int i=0;private Handler handler= new Handler();private Runnable runnable=new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubb = a.nextInt(4);handler.postDelayed(this, 20);if (b==0){XIANS.setText("辉夜大小姐");}if (b==1){XIANS.setText("藤原千花");}if (b==2){XIANS.setText("古见同学");}if (b==3){XIANS.setText("阿尼亚");}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main11);tv_stroke = findViewById(R.id.tv_stroke);XIANS = findViewById(R.id.WENTI);LinearLayout ll_layout = findViewById(R.id.ll_layout);RadioGroup rg_color = findViewById(R.id.rg_color);ch=findViewById(R.id.JSQ);ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {@Overridepublic void onChronometerTick(Chronometer chronometer) {if(SystemClock.elapsedRealtime()-ch.getBase()>=10000){ch.stop();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);long[] pattern1 = {100,100,100};vibrator.vibrate(pattern1, 0);}}});// 循环遍历单选按钮for (int i = 0;i<rg_color.getChildCount();i++){RadioButton rb = (RadioButton) rg_color.getChildAt(i);rb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { // 为单选按钮注册选中响应事件@Overridepublic void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {if (buttonView.isChecked()){paint.setColor(buttonView.getTextColors().getDefaultColor()); // 获取单选按钮颜色并将颜色设置}}});}imageview = findViewById(R.id.imageview);Log.i("MyPaintToolsActivity",imageview.getWidth()+" "+imageview.getHeight());Point point = new Point();getWindowManager().getDefaultDisplay().getSize(point);Log.i("MyPaintToolsActivity",point.x+" "+point.y);bitmap = Bitmap.createBitmap(800,1000,Bitmap.Config.ARGB_8888); // 创建一张空白图片canvas = new Canvas(bitmap); // 创建一张画布,并图片放在画布上面canvas.drawColor(Color.WHITE); // 设置画布背景颜色为白色paint = new Paint(Paint.ANTI_ALIAS_FLAG);paint.setStyle(Paint.Style.STROKE);paint.setStrokeWidth(5);paint.setAntiAlias(true);paint.setColor(Color.RED);paint.setStrokeCap(Paint.Cap.ROUND);canvas.drawBitmap(bitmap,new Matrix(),paint); //把灰色背景画在画布上imageview.setImageBitmap(bitmap); // 把图片加载到ImageView上// 注册触摸监听事件imageview.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch(event.getAction()){case MotionEvent.ACTION_DOWN:Log.i("MyPaintToolsActivity","ACTION_DOWN");// 获取鼠标按下时的坐标startX = (int) (event.getX()/1.4);startY = (int) (event.getY()/1.4);break;case MotionEvent.ACTION_MOVE:Log.i("MyPaintToolsActivity","ACTION_MOVE");// 获取鼠标移动后的坐标endX = (int) (event.getX()/1.4);endY = (int) (event.getY()/1.4);//在开始和结束之间画一条直线canvas.drawLine(startX,startY,endX,endY,paint);// 实时更新开始坐标startX = (int) (event.getX()/1.4);startY = (int) (event.getY()/1.4);// 更新ImageView上的画布图片imageview.setImageBitmap(bitmap);break;case MotionEvent.ACTION_UP:Log.i("MyPaintToolsActivity","ACTION_UP");break;}imageview.invalidate();return true;}});// 清除Button btn_clear = findViewById(R.id.btn_clear);btn_clear.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// 清空画布的方法:// 方法一:// canvas.drawColor(0,PorterDuff.Mode.CLEAR);// 方法二:// canvas.drawColor(Color.TRANSPARENT,PorterDuff.Mode.CLEAR);// 方法三:Paint paint = new Paint();paint.setAntiAlias(true);paint.setStrokeCap(Paint.Cap.ROUND);paint.setStyle(Paint.Style.STROKE);paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.CLEAR));canvas.drawPaint(paint);paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));imageview.invalidate(); //显示到布局文件中的ImageView控件上}});Button btn_save = findViewById(R.id.btn_save);btn_save.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {i+=1;ch.start();ch.setFormat("%s");ch.setBase(SystemClock.elapsedRealtime());handler.postDelayed(runnable, 20);//定时器启动if(i%2==0){handler.removeCallbacks(runnable);//定时器结束}}});Button btn_FH = findViewById(R.id.TC);btn_FH.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v){finish();Vibrator vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);vibrator.cancel();}});// 擦除Button btn_eraser = findViewById(R.id.btn_eraser);btn_eraser.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {paint.setColor(Color.rgb(250,250,250));paint.setStrokeWidth(30);}});// Progress进度条 ,调节画笔粗细SeekBar sb_stroke = findViewById(R.id.sb_stroke);sb_stroke.setProgress(5); //进度条初始大小值为5sb_stroke.setMax(30);sb_stroke.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener(){@Overridepublic void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {paint.setStrokeWidth(progress);tv_stroke.setText("画笔粗度为:"+progress);}@Overridepublic void onStartTrackingTouch(SeekBar seekBar) {}@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {}});}}
Android Studio 抽卡小游戏相关推荐
- 用C语言写了一个明日方舟的简略的抽卡小游戏
明日方舟抽卡小游戏 目录 明日方舟抽卡小游戏 第一步 创建菜单 游戏的实现 头文件的声明 写这个程序的灵感来来自于<每天都要学一点哦>,本人不怎么完原神,就自己做了个明日方舟版的 过程和猜 ...
- 利用switch语句制作的抽卡小游戏。
标题:利用switch语句制作的抽卡小游戏. 输出效果: 代码部分: 基本只用了switch的嵌套来完成 //该游戏是使用switch语句开发的数字小游戏,作者:initial.M //抽卡游戏规则介 ...
- Android Studio实现五子棋小游戏
项目目录 一.项目概述 二.开发环境 三.详细设计 1.布局设计 2.验证码 3.AI人机 4.背景音乐 四.运行演示 五.项目总结 六.源码获取 一.项目概述 五子棋是一种两人对弈的策略型棋类游戏, ...
- Android Studio实现数独小游戏,休闲益智
文章目录 一.项目概述 二.开发环境 三.详细设计 3.1 界面设计 3.2 逻辑设计 四.运行演示 五.源码获取 一.项目概述 数独是一种逻辑解谜游戏,它规则稍复杂,解题过程富有挑战性.本次安卓数独 ...
- 第52篇 Android Studio实现生命数字游戏(七)ListView与适配器
第52篇 Android Studio实现生命数字游戏(七)ListView与适配器 1.ListView 1.1.适配界面 1.2.适配器 1.ListView 在布局中直接添加. 没有什么好说明, ...
- 第46篇 Android Studio实现生命数字游戏(一)数据分析
第46篇 Android Studio实现生命数字游戏(一)数据分析 1.数据 1.1.生日 1.2.生日数 1.3.天赋数 1.4.命数 1.5.星座数 2.数字对应的解析 1.数据 数据是在生命数 ...
- 解决一个Android Studio gradle的小问题
解决一个Android Studio gradle的小问题 参考文章: (1)解决一个Android Studio gradle的小问题 (2)https://www.cnblogs.com/xzha ...
- 第50篇 Android Studio实现生命数字游戏(五)计算星座数
第50篇 Android Studio实现生命数字游戏(五)计算星座数 1.变量说明: 1.1.统计圈数 2.计算命数 2.1.使用的数据 2.2.星座对应日期和数字 2.3.说明 2.4.代码 1. ...
- Android 实现扑克牌动画,Android扑克牌猜点小游戏源码
Android扑克牌猜点小游戏源码分享. 该游戏是简单的猜点游戏, 1点为正确的点数 点重新开始后进行洗牌 每次牌的顺序不同 Java代码: package com.mrzhu.test0109_pr ...
最新文章
- Spring Boot 集成 Swagger-Bootstrap-UI,非常棒的解决方案
- 北京实习总结——记住牛人那些话
- mysql 代理作业_查看SQLServer 代理作业的历史信息
- 人工智能的概念和知识构架_概念验证:玩! 构架
- 「浏览器插件」非常好用的JSON-View
- 命令行运行jmeter脚本
- 『TensorFlow』分布式训练_其二_单机多GPU并行GPU模式设定
- 锤子濒危、金立倒闭,华米 OV 们如何艰难求生?
- 如何修改maven默认仓库(即repository)的路径
- 计算机组成原理与汇编语言试题,2069电大《计算机组成原理与汇编语言》试题和答案2005...
- 数据结构 栈的结构特点及基本操作
- 解决Kafka-1194问题
- 关于如何有效锻炼肌肉的十个小贴士(转)
- 平均年薪50万,人才缺口30.8万,职场人拿下这个法律证书有多香!
- [Python]阴阳师-抗检测多功能护肝辅助脚本
- Verilog语言之结构语句:if、case
- 利用js制作的简单网页小游戏
- Couldn‘t store trigger ‘‘ for ‘‘ job:Couldn‘t retrieve job because the BLOB couldn‘t be deserialized
- bim综合软件:一次性快速解锁所有轴网,生成轴网
- 矩阵的乘法口诀(一)
热门文章
- 第一节 红帽认证培训 开班仪式+介绍Linux
- [转载]CSDN怎么转载别人的博客
- [Python图像处理] 六.图像缩放、图像旋转、图像翻转与图像平移
- 中国电信SIP账号在FreePBX 13中的中继设置
- pdm系统是归档服务器吗,PDM系统与档案管理系统集成方法研究
- 蒙牛开启元宇宙世界,成功发布首个二次元员工形象
- ES6数组方法find()、findIndex()的总结
- 视频剪辑:如何在视频里面添加自己喜欢的图片作为封面
- 7款最常用的PHP本地测试环境
- CV2简单阈值函数:cv2.threshold()