package com.zl.moveimage;
import java.util.Random;
import android.app.Activity;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.AbsoluteLayout.LayoutParams;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.ImageView.ScaleType;
@SuppressWarnings("deprecation")
public class SimplePuzzle extends Activity {
private static final int MENU_ABOUT = Menu.FIRST;
private static final int MENU_EXIT = Menu.FIRST + 1;
// 存储图片序列的int数组,最后一位为图片标记,用于换图片时的判断
// 默认图片
int[] queue = { R.drawable.p1, R.drawable.p2, R.drawable.p3, R.drawable.p4,
R.drawable.p5, R.drawable.p6, R.drawable.p7, R.drawable.p8,
R.drawable.p9, 1 };
// 图片p系列
int[] queue1 = { R.drawable.p1, R.drawable.p2, R.drawable.p3,
R.drawable.p4, R.drawable.p5, R.drawable.p6, R.drawable.p7,
R.drawable.p8, R.drawable.p9, 1 };
// 图片a系列
int[] queue2 = { R.drawable.a1, R.drawable.a2, R.drawable.a3,
R.drawable.a4, R.drawable.a5, R.drawable.a6, R.drawable.a7,
R.drawable.a8, R.drawable.a9, 2 };
// ImageView 图片显示区域,按九宫格分为九个区域
private ImageView iv_1, iv_2, iv_3, iv_4, iv_5, iv_6, iv_7, iv_8, iv_9;
// 图片的位置参数对象,
// 通过Drawable对象的getLayoutParams()方法取得,可得到图片的位置信息
// 通过设置LayoutParams方法的x,y坐标,并传给图片,可以改变图片的位置,如:
// setLayoutParams(paramsIv_1)
private AbsoluteLayout.LayoutParams paramsIv_1, paramsIv_2, paramsIv_3,
paramsIv_4, paramsIv_5, paramsIv_6, paramsIv_7, paramsIv_8,
paramsIv_9;
// 记录图片的长宽,与左上角一点的坐标
private int picWidth, picHeight, picX1, picY1, picX2, picY2, picX3, picY3,
picX4, picY4, picX5, picY5, picX6, picY6, picX7, picY7, picX8,
picY8, picX9, picY9;
// 在onTouchEvent方法中设置,标记是否击中图片
private boolean clickPic1, clickPic2, clickPic3, clickPic4, clickPic5,
clickPic6, clickPic7, clickPic8, clickPic9;
// 图片锁,每次只能对一个图片进行操作。flag为真时表明已经ACTION_DOWN一张图片
private boolean flag = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 全屏显示
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 加载layout
setContentView(R.layout.main);
// 按照queue的顺序显示图片
findImageView(queue);
//按钮
Button button01 = (Button) findViewById(R.id.button01);
Button button02 = (Button) findViewById(R.id.button02);
button01.setOnClickListener(button01Listener);
button02.setOnClickListener(button02Listener);
}
/**
* 创建菜单选项
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
//关于选项
menu.add(0, MENU_ABOUT, 0, R.string.menu_about);
//退出选项
menu.add(0, MENU_EXIT, 0, R.string.menu_exit);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_ABOUT:
Toast
.makeText(
this,
"App coded by ZL at 2010.9.17\nhttp://blog.csdn.net/zzzrlhzl",
Toast.LENGTH_SHORT).show();
break;
case MENU_EXIT:
finish();
}
return true;
}
/**
* 打乱数组顺序
*
* @param intArray
* @return 打乱后的int数组
*/
public static int[] shuffle(int[] intArray) {
Random ran = new Random();
int num;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 9; j++) {
num = ran.nextInt(9);
swap(intArray, j, num);
}
}
return intArray;
}
/**
* 用于交换intArray中下标分别为index1和index2的值
*/
public static void swap(int[] intArray, int index1, int index2) {
int temp = 0;
temp = intArray[index1];
intArray[index1] = intArray[index2];
intArray[index2] = temp;
}
/**
* 打乱数组
*/
private OnClickListener button01Listener = new OnClickListener() {
public void onClick(View v) {
queue = shuffle(queue);
findImageView(queue);
}
};
/**
* 换图片
*/
private OnClickListener button02Listener = new OnClickListener() {
public void onClick(View v) {
//判断数组最后一位的标记,只有两幅图,随便做一个简单判断
if (queue[9] == 1)
//数组复制,如果用queue==queue2的话,会让queue指向queue2的地址,
//修改queue的同时也会修改queue2
System.arraycopy(queue2, 0, queue, 0, queue2.length);
else
System.arraycopy(queue1, 0, queue, 0, queue1.length);
findImageView(queue);
}
};
/**
* 按照int数组queue的顺序显示图片
*
* @param queue
*/
@SuppressWarnings("deprecation")
public void findImageView(int[] queue) {
//每幅分图的大小
picHeight = 106;
picWidth = 70;
Drawable pic1 = getResources().getDrawable(queue[0]);
iv_1 = (ImageView) this.findViewById(R.id.ImageView01);
iv_1.setImageDrawable(pic1);
// CENTER_INSIDE 将图片的内容完整居中显示,通过按比例缩小原来的size使得图片长/宽等于或小于View的长/宽
iv_1.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_1 = (LayoutParams) iv_1.getLayoutParams();
picX1 = paramsIv_1.x;
picY1 = paramsIv_1.y;
Drawable pic2 = getResources().getDrawable(queue[1]);
iv_2 = (ImageView) this.findViewById(R.id.ImageView02);
iv_2.setImageDrawable(pic2);
iv_2.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_2 = (LayoutParams) iv_2.getLayoutParams();
picX2 = paramsIv_2.x;
picY2 = paramsIv_2.y;
Drawable pic3 = getResources().getDrawable(queue[2]);
iv_3 = (ImageView) this.findViewById(R.id.ImageView03);
iv_3.setImageDrawable(pic3);
iv_3.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_3 = (LayoutParams) iv_3.getLayoutParams();
picX3 = paramsIv_3.x;
picY3 = paramsIv_3.y;
Drawable pic4 = getResources().getDrawable(queue[3]);
iv_4 = (ImageView) this.findViewById(R.id.ImageView04);
iv_4.setImageDrawable(pic4);
iv_4.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_4 = (LayoutParams) iv_4.getLayoutParams();
picX4 = paramsIv_4.x;
picY4 = paramsIv_4.y;
Drawable pic5 = getResources().getDrawable(queue[4]);
iv_5 = (ImageView) this.findViewById(R.id.ImageView05);
iv_5.setImageDrawable(pic5);
iv_5.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_5 = (LayoutParams) iv_5.getLayoutParams();
picX5 = paramsIv_5.x;
picY5 = paramsIv_5.y;
Drawable pic6 = getResources().getDrawable(queue[5]);
iv_6 = (ImageView) this.findViewById(R.id.ImageView06);
iv_6.setImageDrawable(pic6);
iv_6.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_6 = (LayoutParams) iv_6.getLayoutParams();
picX6 = paramsIv_6.x;
picY6 = paramsIv_6.y;
Drawable pic7 = getResources().getDrawable(queue[6]);
iv_7 = (ImageView) this.findViewById(R.id.ImageView07);
iv_7.setImageDrawable(pic7);
iv_7.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_7 = (LayoutParams) iv_7.getLayoutParams();
picX7 = paramsIv_7.x;
picY7 = paramsIv_7.y;
Drawable pic8 = getResources().getDrawable(queue[7]);
iv_8 = (ImageView) this.findViewById(R.id.ImageView08);
iv_8.setImageDrawable(pic8);
iv_8.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_8 = (LayoutParams) iv_8.getLayoutParams();
picX8 = paramsIv_8.x;
picY8 = paramsIv_8.y;
Drawable pic9 = getResources().getDrawable(queue[8]);
iv_9 = (ImageView) this.findViewById(R.id.ImageView09);
iv_9.setImageDrawable(pic9);
iv_9.setScaleType(ScaleType.CENTER_INSIDE);
paramsIv_9 = (Lay
没有合适的资源?快使用搜索试试~ 我知道了~
Android应用源码之植物大战僵尸源码.zip项目安卓应用源码下载
共41个文件
png:21个
class:9个
xml:3个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 132 浏览量
2022-03-08
23:02:01
上传
评论
收藏 1.94MB ZIP 举报
温馨提示
Android应用源码之植物大战僵尸源码.zip项目安卓应用源码下载Android应用源码之植物大战僵尸源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
资源推荐
资源详情
资源评论
收起资源包目录
Android应用源码之植物大战僵尸源码.zip (41个子文件)
Android应用源码之植物大战僵尸源码
Android应用源码之植物大战僵尸源码
SimplePuzzle
AndroidManifest.xml 658B
res
layout
main.xml 2KB
drawable-ldpi
icon.png 60KB
drawable-mdpi
icon.png 60KB
drawable-hdpi
a5.png 41KB
p5.png 20KB
p6.png 24KB
p8.png 19KB
a1.png 31KB
p1.png 23KB
p2.png 26KB
a6.png 41KB
p4.png 20KB
a9.png 40KB
a2.png 36KB
a3.png 29KB
a7.png 33KB
p9.png 23KB
p3.png 31KB
a8.png 37KB
icon.png 60KB
p7.png 13KB
a4.png 36KB
values
strings.xml 304B
src
com
zl
moveimage
SimplePuzzle.java 28KB
bin
com
zl
moveimage
SimplePuzzle$1.class 843B
R.class 517B
R$layout.class 388B
R$attr.class 334B
R$id.class 727B
R$string.class 523B
SimplePuzzle.class 17KB
SimplePuzzle$2.class 1003B
R$drawable.class 862B
classes.dex 20KB
resources.ap_ 624KB
SimplePuzzle.apk 633KB
.classpath 280B
default.properties 364B
.project 848B
gen
com
zl
moveimage
R.java 2KB
共 41 条
- 1
资源评论
yxkfw
- 粉丝: 81
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功