android猜歌王工程实现解析-让唱片转起来

原创 2015年07月09日 21:10:37

先做说明:此博文是本人看了幕课网的视频之后进行的总结:

实现猜歌游戏,首先先做好界面:

1:整个PanLayout布局的xml文件如下:



界面显示图如下:



以上布局文件:总体用了linearlayout布局,然后上面的标题用了framelayot布局,先是ImageView,然后让TextView显示在他的上面

下面也是使用frameLayou的布局,先是唱片ImageVIew在下层,然后是ImageButton点击按钮在上层,然后是右侧的拨杆ImageView,组成了主界面

2:MainActivity的代码逻辑:







解释上面的代码逻辑:

protected void onCreate(Bundle savedInstanceState) {
        //set fullscreen
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //初始化一些控件
        initView();
    }

上面的代码主要是进行标题栏的不显示和设置全屏

initView()函数中的方法解释:

主要是对界面中用到的控件的初始化
    ViewPan=(ImageView)findViewById(R.id.imageview1);
    ViewPanBar=(ImageView)findViewById(R.id.imageview2);

设置唱片按钮的点击事件
    btnPlayStart=(ImageButton)findViewById(R.id.btn_play_start);
    //唱片按钮的点击事件
    btnPlayStart.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
        handlePlayButton();
        }
    });

    //处理唱片按钮的点击事件
    private void handlePlayButton()
    {
//首先
// 拨杆向左转动 盘片开始旋转
if(ViewPanBar!=null)
{
    if(!isRunning)
    {
        isRunning=true;
        ViewPanBar.startAnimation(BarInAnim);
       btnPlayStart.setVisibility(View.INVISIBLE);
        //播放音乐
    }
}
    }

首先判断ViewPanBar是否为空,如果是的,就进行初始化,然后判断唱片是否旋转结束,如果是的isRunning=false,就设置isRunning=true标志唱片旋转开始,然后拨杆开始向左转动,播放拨杆向左转动的动画逻辑

拨杆向左转动标志唱片旋转的开始,然后在下面的动画监听器里面,如果检测到拨杆向左转动的动画结束,则开始播放唱片进行旋转的动画。然后在唱片旋转的动画结束后,开始播放拨杆向右转动的动画。

    //盘片动画逻辑
    PanAnim= AnimationUtils.loadAnimation(this,R.anim.rotatepan);
    PanLin=new LinearInterpolator();
    PanAnim.setInterpolator(PanLin);
    PanAnim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {


        }


        @Override
        public void onAnimationEnd(Animation animation) {
            ViewPanBar.startAnimation(BarOutAnim);


        }


        @Override
        public void onAnimationRepeat(Animation animation) {
        }
    });
    //拨杆开始向左转动的逻辑
    BarInAnim=AnimationUtils.loadAnimation(this,R.anim.rotate_45);
    BarInLin=new LinearInterpolator();
    BarInAnim.setFillAfter(true);
    BarInAnim.setInterpolator(BarInLin);
    BarInAnim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {


        }


        @Override
        public void onAnimationEnd(Animation animation) {
            ViewPan.startAnimation(PanAnim);


        }


        @Override
        public void onAnimationRepeat(Animation animation) {
        }
    });
    //拨杆在唱片结束旋转后向右转动的逻辑
    BarOutAnim=AnimationUtils.loadAnimation(this,R.anim.rotate_d_45);
    BarOutLin=new LinearInterpolator();
    BarOutAnim.setFillAfter(true);
    BarOutAnim.setInterpolator(BarOutLin);
    BarOutAnim.setAnimationListener(new Animation.AnimationListener() {
        @Override
        public void onAnimationStart(Animation animation) {


        }


        @Override
        public void onAnimationEnd(Animation animation) {
            isRunning=false;
            btnPlayStart.setVisibility(View.VISIBLE);
        }


        @Override
        public void onAnimationRepeat(Animation animation) {


        }
    });


}

三个rotate的xml代码如下:















Android实战简易教程-第六十三枪(动画实现唱片播放界面)

对于Android动画的使用,唱片播放是十分经典的一例,我们通过实现唱片播放效果来对Android动画进行学习,具有很高的趣味性和实用性。1.首先我们定义一下布局文件-pan_layout.xml: ...
  • yayun0516
  • yayun0516
  • 2015年10月08日 11:02
  • 2126

用RotateDrawable实现网易云音乐唱片机效果

Drawable系列之一,简单的用RotateDrawable实现网易云音乐的唱片机效果
  • Mario_0824
  • Mario_0824
  • 2016年06月20日 19:42
  • 2416

Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路

 Android版网易云音乐唱片机唱片磁盘旋转及唱片机机械臂动画关键代码实现思路 先看一看我的代码运行结果。 代码运行起来初始化状态: 点击开始按钮,唱片机的机械臂匀速...
  • zhangphil
  • zhangphil
  • 2016年07月27日 14:52
  • 3760

Android案例(3)——猜歌游戏

原文地址:猜歌游戏 1. 主界面介绍: 主界面可以拆分成这四个部分: 其中前三个可以放在一个LinearLayout中垂直排列,第四个可以作为一个层浮动在整个页面之上。     2. ...
  • zizidemenghanxiao
  • zizidemenghanxiao
  • 2015年11月06日 23:17
  • 2194

Android 你画我猜核心实现源码,客户端+客户端

第一次写博客,就来一个以前写的你画我猜客户端和服务器端的实现吧! 客户端: 实现原理就是自定义View,然后继承的是SurfaceView,不继承View的原因就是SurfaceView这个视图里...
  • zhaohui_android
  • zhaohui_android
  • 2017年03月09日 19:21
  • 910

让计算机来做猜数字

import java.io.*;//package com.maodajun.javaeye2;public class GuessNumber2{  public static void main...
  • religiose
  • religiose
  • 2007年11月04日 11:01
  • 425

猜歌王为什么会成功

因为要面试,本来是想写一篇关于猜歌王的游戏体验。不过后来从网上查了下,发现原来自己写错了。我写成了猜歌王为什么会成功。于是来这里吐糟下吧。猜歌王之所以会成功,以下是我的个人看法。     第一个当然...
  • hong_1990
  • hong_1990
  • 2012年12月27日 17:00
  • 481

9.5 让电机转起来

再重新看一下上面的步进电机外观图和内部结构图:步进电机一共有 5 根引线,其中红色的是公共端,连接到 5V 电源,接下来的橙、黄、粉、蓝就对应了 A、B、C、D 相;那么如果要导通 A 相绕组,就只需...
  • softn
  • softn
  • 2016年07月06日 07:48
  • 277

一个简单的CD唱片管理程序

    程序的原型来自于经典的>,有用Shell编程实现的版本,有用C编程实现的版本。用C编程有多种方式,有用curses库实现的,有用ndbm数据库实现的,有用MySQL数据库实现的,后来还加了简单...
  • zhoudaxia
  • zhoudaxia
  • 2009年07月15日 13:59
  • 2365

一起制作简易唱片播放器

扯蛋篇这几由于智齿又长了出来,痛了好几天还没好,吃饭又不能吃,加上公司里面操蛋的体制,感觉人活着真累,昨天晚上回到住处,我朋友让我帮忙写个唱片播放器,效果大致上如下:于是乎,利用一个早上做了下,比较粗...
  • GULINHAI12
  • GULINHAI12
  • 2016年03月03日 16:39
  • 1206
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android猜歌王工程实现解析-让唱片转起来
举报原因:
原因补充:

(最多只允许输入30个字)