Android 手机影音 开发过程记录(一)

开发工具

  • Android Studio
  • JDK 1.8

版本兼容

  • Android 4.1及以上

效果图

这里写图片描述 这里写图片描述

这里写图片描述

这里写图片描述 这里写图片描述

主要有视频和音乐功能模块:

  • 视频模块:

    1. 视频列表-将手机sd卡的视频列出来
    2. 自定义播放器界面
    3. 万能播放器(能播放主流格式的视频)
    4. 视频播放界面一些细节和逻辑的处理
  • 音乐模块:

    1. 音乐列表-将手机sd卡的音乐列出来
    2. 在Service中播放音乐
    3. 播放模式的切换和逻辑处理
    4. 自定义布局的通知
    5. 歌词的解析和同步显示

应用整体结构图

这里写图片描述

这里就可以做一些开发前的准备工作。像BaseActivity和BaseFragment的编写。

包名的组织

这里写图片描述

这里只是大致地组织了一下该应用开发要用到的包名,实际开发视每个具体的应用而定。后期可添加。

SplashActivity的编写

  • 功能一: 默认延迟3秒进入主页面
  • 功能二: 支持点击立即进入主页面

注意点:为防止进入主页面的方法被执行两次(默认的一次以及触摸的一次),应在进入主页面的方法外加一个判断标识。

相关代码如下:
布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@mipmap/base_bg"
    android:gravity="center"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@mipmap/ic_launcher" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:text="好音乐,好心情"
        android:textColor="@color/white"
        android:textSize="18sp" />

</LinearLayout>

SplashActivity代码

public class SplashActivity extends Activity {

    private boolean hasEnter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_splash);
        delayEnterMain(true);
    }

    private void delayEnterMain(boolean isdelay) {
        new Handler().postDelayed(new Runnable() {
            @Override
            public void run() {
                if (!hasEnter) {
                    hasEnter = true;
                    goToMain();
                }
            }
        }, isdelay ? 3000 : 0);
    }

    private void goToMain() {
        Intent intent = new Intent(this, MainActivity.class);
        startActivity(intent);
        finish();
    }


    @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                delayEnterMain(false);
                break;
        }
        return super.onTouchEvent(event);
    }
}

好了,先整理到这里。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章