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.x...

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

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

OpenGL ES 学习教程(三) 使用矩阵、彩色立方体转起来!

在OpenGL中,让圆珠笔旋转是一个矩阵,暂称为 rotationMat4,抛起来位移也是一个矩阵 transMat4 ,然后还有缩放矩阵 scaleMat4 。 只要把 位移矩阵 乘以 旋转矩阵 ...

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

Drawable系列之一,简单的用RotateDrawable实现网易云音乐的唱片机效果

【CD唱片shell脚本实现】实现方法

程序首先会执行菜单选择程序,然后根据用户输入的命令,再去执行相应的函数。 # Here, we come to the main menu function, set_menu_choice...

Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来

如果你是网购达人,你的手机上一定少不了淘宝客户端。关注特效的人一定都会发现,淘宝不管是网站还是手机客户端,主页上都会有一个图片滚动播放器,上面展示一些它推荐的商品。这个几乎可以用淘宝来冠名的功能,看起...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android猜歌王工程实现解析-让唱片转起来
举报原因:
原因补充:

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