Android大作业报告Word文件下载.docx
- 文档编号:18248739
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:19
- 大小:334.21KB
Android大作业报告Word文件下载.docx
《Android大作业报告Word文件下载.docx》由会员分享,可在线阅读,更多相关《Android大作业报告Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
D:
\AndroidDevelop\android-sdk-windows点击Apply、OK。
配置完成。
2.5、创建AVD
为使Android应用程序可以在模拟器上运行,必须创建AVD。
1、在Eclipse中。
选择Windows>
AndroidSDKandAVDManager
2、点击左侧面板的VirtualDevices,再右侧点击New
3、填入Name,选择Target的API,SDCard大小任意,Skin随便选,Hardware目前保持默认值
4、点击CreateAVD即可完成创建AVD
注意:
如果你点击左侧面板的VirtualDevices,再右侧点击New,而target下拉列表没有可选项时,这时候你:
点击左侧面板的AvailablePackages,在右侧勾选https:
然后点击InstallSelected按钮,接下来就是按提示做就行了
要做这两步,原因是在1.3、AndroidSDK安装中没有安装一些必要的可用包(AvailablePackages)。
2.5、创建Android工程
三、程序开发平台
(1)代码行数:
1000
(2)开发环境:
AndroidDeveloperToolsBuild:
v22.6.2-1085508
apache-ant-1.9.3
四、程序功能说明:
单机屏幕按住不放可以拖动魔方转动,魔方上下左右空白处可以转动魔方相对那一面。
五、应用核心源码
classMFtestSurfaceViewextendsGLSurfaceView{
privateMFtestRenderermRenderer;
privatefloatmPreviousX;
privatefloatmPreviousY;
//上一次的点
privatefloatmDownPreviousX;
privatefloatmDownPreviousY;
//上一次的Down点
//privateintoldDownX;
//privateint
privatefloattheta;
privatefloatfai;
//球坐标
publicMFtestSurfaceView(Contextcontext){
super(context);
theta=(float)3.14159/4;
fai=(float)3.14159/4;
//SettheRendererfordrawingontheGLSurfaceView
mRenderer=newMFtestRenderer();
setRenderer(mRenderer);
setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);
}
@Override
publicbooleanonTouchEvent(MotionEvente){
//MotionEventreportsinputdetailsfromthetouchscreen
//andotherinputcontrols.Inthiscase,youareonly
//interestedineventswherethetouchpositionchanged.
floatx=e.getX();
floaty=e.getY();
switch(e.getAction()){
caseMotionEvent.ACTION_MOVE:
//如果是移动的话
floatdx=x-mPreviousX;
floatdy=y-mPreviousY;
//x,y的变换值(不是0,就是1)
floatte=theta;
theta=theta+dy/100;
//角度是弧度值
if(!
(theta>
0&
&
theta<
3.14159))
{
theta=te;
//法线始终向上
}
fai=fai+dx/100;
//x=rsinθcosφ
mRenderer.eyez=(float)(3*Math.sin(theta)*Math.cos(fai));
//y=rsinθsinφ
mRenderer.eyex=(float)(3*Math.sin(theta)*Math.sin(fai));
////z=rcosθ利用球坐标使观察点始终维持在半径为3的球上
mRenderer.eyey=(float)(3*Math.cos(theta));
requestRender();
//System.out.println(x+"
+y);
break;
caseMotionEvent.ACTION_DOWN:
mDownPreviousX=x;
mDownPreviousY=y;
break;
caseMotionEvent.ACTION_UP:
if((((x-mDownPreviousX)>
-5)&
((x-mDownPreviousX)<
5))&
(((y-mDownPreviousY)>
((y-mDownPreviousY)<
5)))//(((x-mDownPreviousX)>
-3)||((x-mDownPreviousX)>
-3))&
-3)||((y-mDownPreviousY)>
-3))
//System.out.println(x-mDownPreviousX);
if(x<
(mRenderer.width*(1-Math.sqrt(18)/6)/2))
{
//左
//System.out.println(x+"
左"
mRenderer.action=1;
DrawAnimation();
}
elseif(x>
mRenderer.width-(mRenderer.width*(1-Math.sqrt(18)/6)/2))
//右
右"
mRenderer.action=2;
elseif(y<
mRenderer.height/2.0-(1.5*mRenderer.width)/6){
//上
上"
mRenderer.action=3;
elseif(y>
mRenderer.height/2.0+(1.5*mRenderer.width)/6){
//下
下"
mRenderer.action=4;
else{
mRenderer.action=0;
mPreviousX=x;
mPreviousY=y;
//保存这次点
returntrue;
privatevoidDrawAnimation(){
ChangeMoveByAction();
//确定是哪个面旋转
mRenderer.angle=0;
while(mRenderer.angle<
85){//绘制旋转效果
mRenderer.angle=mRenderer.angle+5;
try{
Thread.sleep(40);
catch(InterruptedExceptione){
requestRender();
}//绘制旋转效果
mRenderer.action=0;
DrawColorChange();
//改变颜色
requestRender();
privatevoidDrawColorChange(){
switch(mRenderer.move)
case70:
LeftShift(0*27+0*3,0*27+6*3,0*27+8*3,0*27+2*3);
LeftShift(0*27+1*3,0*27+3*3,0*27+7*3,0*27+5*3);
LeftShift(1*27+6*3,5*27+8*3,4*27+2*3,2*27+0*3);
LeftShift(1*27+7*3,5*27+5*3,4*27+1*3,2*27+3*3);
LeftShift(1*27+8*3,5*27+2*3,4*27+0*3,2*27+6*3);
break;
case66:
LeftShift(3*27+0*3,3*27+6*3,3*27+8*3,3*27+2*3);
LeftShift(3*27+1*3,3*27+3*3,3*27+7*3,3*27+5*3);
LeftShift(1*27+0*3,2*27+2*3,4*27+8*3,5*27+6*3);
LeftShift(1*27+1*3,2*27+5*3,4*27+7*3,5*27+3*3);
LeftShift(1*27+2*3,2*27+8*3,4*27+6*3,5*27+0*3);
case85:
LeftShift(1*27+0*3,1*27+6*3,1*27+8*3,1*27+2*3);
//////////
LeftShift(1*27+1*3,1*27+3*3,1*27+7*3,1*27+5*3);
LeftShift(0*27+0*3,2*27+0*3,3*27+0*3,5*27+0*3);
LeftShift(0*27+1*3,2*27+1*3,3*27+1*3,5*27+1*3);
LeftShift(0*27+2*3,2*27+2*3,3*27+2*3,5*27+2*3);
case68:
LeftShift(4*27+0*3,4*27+2*3,4*27+8*3,4*27+6*3);
LeftShift(4*27+1*3,4*27+5*3,4*27+7*3,4*27+3*3);
LeftShift(0*27+6*3,2*27+6*3,3*27+6*3,5*27+6*3);
LeftShift(0*27+7*3,2*27+7*3,3*27+7*3,5*27+7*3);
LeftShift(0*27+8*3,2*27+8*3,3*27+8*3,5*27+8*3);
case82:
LeftShift(2*27+0*3,2*27+6*3,2*27+8*3,2*27+2*3);
LeftShift(2*27+1*3,2*27+3*3,2*27+7*3,2*27+5*3);
LeftShift(1*27+2*3,0*27+2*3,4*27+2*3,3*27+6*3);
LeftShift(1*27+5*3,0*27+5*3,4*27+5*3,3*27+3*3);
LeftShift(1*27+8*3,0*27+8*3,4*27+8*3,3*27+0*3);
case76:
LeftShift(5*27+0*3,5*27+6*3,5*27+8*3,5*27+2*3);
LeftShift(5*27+1*3,5*27+3*3,5*27+7*3,5*27+5*3);
LeftShift(1*27+0*3,3*27+8*3,4*27+0*3,0*27+0*3);
LeftShift(1*27+3*3,3*27+5*3,4*27+3*3,0*27+3*3);
LeftShift(1*27+6*3,3*27+2*3,4*27+6*3,0*27+6*3);
default:
privatevoidChangeMoveByAction(){
//F70B66U85D68R82L76(这个注释恐怕只有我能看懂--!
)
switch(mRenderer.action){
case1:
if((mRenderer.eyex>
0)&
(mRenderer.eyez>
0)){
mRenderer.move=76;
}
elseif((mRenderer.eyex>
(mRenderer.eyez<
mRenderer.move=70;
elseif((mRenderer.eyex<
mRenderer.move=82;
mRenderer.move=66;
case2:
case3:
mRenderer.move=85;
case4:
mRenderer.move=68;
privatevoidmemcpy(intone,inttwo){
mRenderer.face_color[one]=mRenderer.face_color[two];
mRenderer.face_color[one+1]=mRenderer.face_color[two+1];
mRenderer.face_color[one+2]=mRenderer.face_color[two+2];
privatevoidLeftShift(inta,intb,intc,intd){
//a<
b<
c<
d左移
floattemp1=mRenderer.face_color[a];
floattemp2=mRenderer.face_color[a+1];
floattemp3=mRenderer.face_color[a+2];
memcpy(a,b);
memcpy(b,c);
memcpy(c,d);
mRenderer.face_color[d]=temp1;
mRenderer.face_color[d+1]=temp2;
mRenderer.face_color[d+2]=temp3;
}
privatevoidDrawRotation(GL10gl){
//绘制小立方体
switch(move)
DrawCube19(gl);
DrawCube11(gl);
DrawCube2(gl);
DrawCube22(gl);
DrawCube13(gl);
DrawCube5(gl);
DrawCube25(gl);
DrawCube16(gl);
DrawCube8(gl);
DrawCube18(gl);
DrawCube10(gl);
DrawCube1(gl);
DrawCube21(gl);
DrawCube4(gl);
DrawCube24(gl);
DrawCube15(gl);
DrawCube7(gl);
gl.glPushMatrix();
gl.glRotatef(-angle,0.0f,0.0f,1.0f);
DrawCube0(gl);
DrawCube9(gl);
DrawCube17(gl);
DrawCube3(gl);
DrawCube12(gl);
DrawCube20(gl);
DrawCube6(gl);
DrawCube14(gl);
DrawCube23(gl);
gl.glPopMatrix();
DrawCube23(gl);
gl.glRotatef(angle,0.0f,0.0f,1.0f);
DrawCube8(gl);
DrawCube3(gl);
DrawCube24(gl);
DrawCube4(gl);
DrawCube12(gl);
DrawCube13(gl);
DrawCube15(gl);
DrawCube16(gl);
DrawCube20(gl);
DrawCube21(gl);
gl.glRotatef(-angle,0.0f,1.0f,0.0f);
DrawCube9(gl);
DrawCube10(gl);
DrawCube19(gl);
DrawCube11(gl);
DrawCube12(gl);
DrawCube18(gl);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Android 作业 报告