Android开发手机影音篇之软件结构分析

一、前段时间看了某培训机构的讲解手机影音的视频(118集),看完视频后敲代码,感觉收获不少,同时也有了不少想法想在博客里分享分享,顺便也巩固一下学到的知识。

二、分析软件结构

     1.首先先介绍该培训机构的讲解的软件结构,然后在说说我对这个结构的看法。

     ①该培训机构的讲解的软件结构:首先它有一个软件启动页面,然后进入主页面,主页面有四大类:本地视频(VideoPager)、本地音乐(AudioPager)、

     网络视频(NetVideoPager)、网络音乐(NetAudioPager),以及一些小挂件等等。

     ②我对此结构看法:最没用这软件之前呢,感觉这四大页面分类也挺合理的,有本地的、有联网的。但是写完程序下载到手机上测试后发现有很多的问题可以改进。

        a:本地视频和本地音乐这两项基本无用。这两项就是把手机SD卡里的视频、音乐全都加载到页面上,测试发现手机里的铃声啊,广告宣传视频啊等一些乱七八糟的东西全都加载出来了,这体验非常不好。在结合我们平时用手机听音乐、看视频的习惯,视频,音乐资源应该全部改为网络资源,并且可以下载到手机本地,除此之外呢,还可以加上用户登陆功能等。

        b:结合以上观点,我们可以先把某培训机构讲的先学会了,然后在尽情地发挥想象去修改这个软件。

三、软件启动页面

       在软件启动之前会有一些启动广告、软件宣传的页面

        

      先分析这个页面:这个布局很简单,所有的View都在中间,所以全局使用相对布局,ProgressBar和TextView使用线性布局,并且在ImageView的下方。

     

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ffffff"
    tools:context="com.example.administrator.mobleplayer.Activity.MainActivity">

    <ImageView
        android:id="@+id/iv_splash_icon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/login_icon"
        android:layout_centerInParent="true"/>

    <LinearLayout
        android:layout_below="@id/iv_splash_icon"
        android:layout_centerHorizontal="true"
        android:orientation="horizontal"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ProgressBar
            android:layout_width="8dp"
            android:layout_height="8dp" />
        <TextView
            android:layout_marginLeft="8dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="正在启动..."/>
    </LinearLayout>

</RelativeLayout>

   再没做过启动页面之前,我一直以为显示的是一个ImageView没想到它是一个Activity

   在MainActivity里我们设置显示MainActivity 2s 后启动 主Activity(OneActivity) (原谅我的错误命名。。。)

   首先确保MainActivity在启动软件后第一个执行 

<activity android:name=".Activity.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

  在MainActivity里我们需要完成两项:一是延时2s   用handler.postDelayed();可完成延时  二是启动OneActivity  

Intent intent = new Intent(this,OneActivity.class);
startActivity(intent);

  使用显式Intent去跳转Activity 然后finish() 销毁MainActivity

  完整代码:

public class MainActivity extends AppCompatActivity {
    private String TAG = "MainActivity";
    private Handler handler = new Handler();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.d(TAG,"正在运行MainActivity");
        handler.postDelayed(new Runnable() {
            @Override
            public void run() {
                //在主线程的Runnable
                startOneActivity();
            }
        },2000);
    }

    private boolean isStartOne = false;
    private void startOneActivity() {
        if (!isStartOne) {
            isStartOne = true;
            Intent intent = new Intent(this,OneActivity.class);
            startActivity(intent);
            finish();
        }
    }
}
在这里我们还可以在加一个小功能,就是触摸屏幕后立即进入OneActivity。重写onTouchEvent()方法  ,有触摸事件后,handler延时清零。

@Override
public boolean onTouchEvent(MotionEvent event) {
    handler.removeCallbacksAndMessages(0);
    startOneActivity();
    return super.onTouchEvent(event);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值