zoukankan      html  css  js  c++  java
  • 2017-2018-20172311 暑期编程作业:APP

    2017-2018-20172311 暑期编程作业:实现一个简单倒计时APP

    • 写在前面:暑假的时候就单纯的想要设计一个倒计时软件,然后就通过查阅资料等学了一些,包括实现倒计时功能及显示;背景音乐的添加;图标的设置;界面的优化设计;从Android studio中把设计的APP提取出来。说实话这个APP确实是有点太简单了,但是既然做了,就把做的过程和结果简单记录一下吧(捂脸笑.gif),虽然也忘得差不多了(捂脸笑.gif)。

    作品展示:

    整体展示:

    细节展示:

    • app原始图标如下:

    • app设计图标如下(get from internet):

    • app原始背景:

    嗯!空白

    • app的设计背景如下(get from internet):

    • app的背景音乐信息:
      歌曲名:Shape of You (伴奏)
      歌手名:Zoom Karaoke
      专辑名:Zoom Karaoke Pop Chart Picks 2017 - Part 1

    • 修改后的res结构如下:

    • app名称和图标的修改如下:

    • layout的设计如下:

    制作之前的准备工作:

    • 1.做一个什么样的app呢?
      王老师让我们暑期自己设计实现一个app,于是,做一个游戏?一个词典?一个音乐软件?一个交易平台?······最后,还是从最简单的开始吧。计算器上学期实现了,就做一个简单的计时器吧!
    • 2.倒计时功能如何实现啊?
      上网查阅计时器实现的整体思路并进行深入学习。
    • 3.app名字怎么改?app图标怎么设置?app背景怎么设置?app音乐怎么导入和使用?
      前三个问题非常感谢王志伟同学的帮助,hahahaha!第四个问题非常感谢谭鑫同学的帮助,hahahaha!
    • 4.Android studio里设计的app如何提取出来?
      查阅资料Android Studio 生成正式签名apk(app-release.apk)的两种方式,同时也非常感谢谭鑫同学的协助,hahahaha!

    制作过程

    主功能的实现:

    这个app的主要功能就是实现背景音乐的播放和倒计时的过程显示(捂脸笑.gif),通过在MainActivity.java代码中的注释表达一下自己的思路。MainActivity.java代码如下:

    import android.app.Activity;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;
    
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class MainActivity extends Activity implements View.OnClickListener {
    
        private EditText inputet;
        private Button getTime,startTime,stopTime;
        private TextView time;
        private double i = 0;
        private Timer timer=null;
        private TimerTask task=null;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initView(); //启用initView()方法
    
            //播放音乐文件shape
            MediaPlayer mediaplayer = MediaPlayer.create(this,R.raw.shape);
            mediaplayer.start();
    
    
        }
    
        //initView()方法
        private void initView(){
    
            //建立文本框和按钮引用
            inputet=(EditText) findViewById(R.id.inputtime);
            getTime=(Button) findViewById(R.id.gettime);
            startTime=(Button) findViewById(R.id.starttime);
            stopTime=(Button) findViewById(R.id.stoptime);
            time=(TextView) findViewById(R.id.time1);
    
            //设置监听事件
            getTime.setOnClickListener(this);
            startTime.setOnClickListener(this);
            stopTime.setOnClickListener(this);
        }
    
        //设置按钮之后执行的操作
        @Override
        public void onClick(View v) {
            switch (v.getId()){
                case R.id.gettime:
                    time.setText(inputet.getText().toString());//将时间显示在文本框里
                    i=Double.valueOf(inputet.getText().toString());
                    break;
                case R.id.starttime:
                    startTime();
    
                    break;
                case R.id.stoptime:
                    stopTime();
    
                    break;
            }
    
        }
    
        //创建Handler对象,实现计时功能
        private Handler mHandler = new Handler(){
            public void handleMessage(Message msg){
                time.setText(msg.obj+"");
                startTime();
            };
    
        };
    
        //开始计时方法
        public void startTime(){
            timer=new Timer();
            task=new TimerTask() {
                @Override
                //实现数字减少与时间减少相对应
                public void run() {
                    i=(double)Math.round( (i-0.1)*10)/10;
                    Message message=mHandler.obtainMessage();
                    message.obj=i;
                    mHandler.sendMessage(message);
                }
            };
            timer.schedule(task,100);
        }
    
        //停止计时方法
        public void stopTime(){
            timer.cancel();
    
        }
    }  
    

    后面想到待实现的一些功能:

    现在看来,这个app能够拓展的地方还是挺多的

    • app的介绍以及使用功能
    • 添加正计时功能的
    • 添加间隔计时报时功能,比如每隔一定时间报一次时
    • 添加背景音乐选择以及是否播放功能 、
    • 添加开启多组计时功能

    反思与总结

    • 虽然这个APP很简单(捂脸笑.jpg),但是通过自己的学习也让我受益匪浅。我学到了如何创建一个app项目,如何设计app的图标和名字,如何添加背景图片和背景音乐以及如何将一些在IDEA里实现的代码在Android studio里使用等等,这些很基础,也很重要!当我把这个app安装包传到手机上安装并运行成功的时候!我真的非常开心!这是我的第一个专属app啊!但是,这次暑期作业的完成质量确实不高,主要是因为自己当时对自己提出的要求有点低了,而且在app开发的功能设计上也存在很大不足!希望在以后的学习中去努力提高自己,开发出更好的软件来吧!

    参考文献

  • 相关阅读:
    属性选择器
    优先级
    hj_html&css
    hj_解决gpedit.msc不存在的问题
    hj_designPatterns
    hj_ssm
    hj-springmvc
    hj_mybatis
    hj_Python踩坑之旅
    hj_Python学习笔记
  • 原文地址:https://www.cnblogs.com/zhaoxiaohai/p/10012982.html
Copyright © 2011-2022 走看看