使用Android studio实现扑克牌翻牌、洗牌效果,通过对话框进行选择翻看哪一张牌,效果如下
ps:前提是要提前准备4或者更多的扑克牌的正面图片以及一张扑克牌的背面图
代码如下:1、界面布局,我是用的是RelativeLayout作为父布局然后嵌入LinearLayout子布局。你们也可以使用LinearLayout作为父布局。效果如下图
<LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/Layout_1" > <ImageView android:id="@+id/activity_iv1" android:layout_width="100dp" android:layout_height="200dp" android:src="@mipmap/hongtaoq" /> <ImageView android:id="@+id/activity_iv2" android:layout_width="100dp" android:layout_height="200dp" android:src="@mipmap/hongtaok" /> <ImageView android:id="@+id/activity_iv3" android:layout_width="100dp" android:layout_height="200dp" android:src="@mipmap/hongtaoj" /> <ImageView android:id="@+id/activity_iv4" android:layout_width="100dp" android:layout_height="200dp" android:src="@mipmap/heitaok" /> </LinearLayout> <Button android:id="@+id/activity_xipai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="洗牌" android:textColor="#bf62ff" android:textSize="40sp" android:layout_marginLeft="100dp" android:layout_below="@id/Layout_1"/> <Button android:id="@+id/activity_xuanpai" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="选牌" android:textColor="#0000ff" android:textSize="40sp" android:layout_below="@id/Layout_1" android:layout_toRightOf="@id/activity_xuanpai" />
2、添加按键响应
//添加按键响应 builder=new AlertDialog.Builder(this); bt1=(Button)findViewById(R.id.activity_xipai); bt2=(Button)findViewById(R.id.activity_xuanpai); iv1=(ImageView)findViewById(R.id.activity_iv1); iv2=(ImageView)findViewById(R.id.activity_iv2); iv3=(ImageView)findViewById(R.id.activity_iv3); iv4=(ImageView)findViewById(R.id.activity_iv4);
3、创建对话框+复选框选项列表
bt2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { builder.setTitle("选牌");//设置标题 builder.setIcon(R.mipmap.tubiao);//设置图标 //列表选项 builder.setMultiChoiceItems(xuanxiang, null, new DialogInterface.OnMultiChoiceClickListener() { @Override //按钮Button(洗牌)响应 public void onClick(DialogInterface dialogInterface, int i, boolean b) { paimian=xuanxiang[i]; //向对话框列表里面添加选项实现复选框效果 if (i == 0) { if (b == true) { li.add("红桃K"); li.contains(R.mipmap.hongtaok); } else { li.remove("红桃K"); } } if (i == 1) { if (b == true) { li.add("红桃J"); } else { li.remove("红桃J"); } li.contains(hongtaoj); } if(i==2){ if(b== true) { li.add("红桃Q"); }else { li.remove("红桃Q"); } li.contains(R.mipmap.hongtaoq); } if (i==3){ if(b==true){ li.add("黑桃K"); }else { li.remove("黑桃K"); } li.contains(R.mipmap.heitaok); } } }); //点击确定,实现选中哪张牌就翻看哪张牌 builder.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { if(paimian.equals("红桃K")){ li.contains(R.mipmap.hongtaok); iv1.setImageResource(R.mipmap.hongtaok); }else {//如果没选中即仍然是背面的效果 iv1.setImageResource(R.mipmap.beimian); } if(paimian.equals("红桃J")){ li.contains(hongtaoj); iv2.setImageResource(hongtaoj); }else { iv2.setImageResource(R.mipmap.beimian); } if(paimian.equals("红桃Q")){ li.contains(hongtaoq); iv3.setImageResource(hongtaoq); }else { iv3.setImageResource(R.mipmap.beimian); } if(paimian.equals("黑桃K")){ li.contains(heitaok); iv4.setImageResource(heitaok); }else { iv4.setImageResource(R.mipmap.beimian); } } }); builder.setNeutralButton("取消", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { } }); builder.create();//创建对话框 builder.show();//显示对话框 } });
4、点击洗牌按钮,实现洗牌(翻牌)效果
bt1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { iv1.setImageResource(R.mipmap.beimian); iv2.setImageResource(R.mipmap.beimian); iv3.setImageResource(R.mipmap.beimian); iv4.setImageResource(R.mipmap.beimian); } });
5、漏了一点;前面还要创建一些变量哦
Button bt1,bt2; ImageView iv1,iv2,iv3,iv4; AlertDialog.Builder builder;//创建对话框变量 String paimian=" "; String[] xuanxiang={"红桃K","红桃Q","黑桃K","红桃J"};//对话框的列表选项 List<String> li=new ArrayList<>();
好啦,代码可直接用,希望能对你们有帮助!