Android mp3音乐播放器实例------mainActivity和AndroidManifest.xml解析

本文详细解析了Android mp3音乐播放器的MainActivity代码,包括TabHost的使用和各个界面的设置。同时,介绍了AndroidManifest.xml的重要组件,如权限设置、应用图标、启动Activity等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

MainActivity:注:(由于我这里工程命名为了TestPro,所以mainActivity的实际类名为TestProActivity)

我们直接看代码,根据代码进行解释

package music.mic.act;

import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.view.Window;
import android.view.WindowManager;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

public class TestProActivity extends TabActivity {

//首先我们要定义一个TabHost 对象,用来得到TabHost对象并进行界面处理。
TabHost Th;

//定义五个标签,用来标识每个界面所代表的含义及显示名称
public static final String Tab_Home = "Tab_Home";
public static final String Tab_1 = "音乐";
public static final String Tab_2 = "艺术家";
public static final String Tab_3 = "专辑";
public static final String Tab_4 = "最近播放";

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

//一下两行是对显示的窗口进行设置,第一个表示为没有标题的界面,第二行表示设置全屏显。这里注意,对于windows的属性设置需要在setContentView()方法之前执行,注意顺序问题。否则会报错。
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);

//getResource()得到resource对象res
Resources res = getResources();
Th = getTabHost();

//getTabHost()得到TabHost对象

//定义Intent对象

//分别根据不同的界面要处理的不同事情进行设置Intent,并且得到TabSpec对象。
Intent intent;
intent = new Intent().setClass(this, ListActivity.class);

//注意 下面这句的Th.newTabSpec(Tab_1)中Tab_1并不是要显示的标签label,后面的setIndicator(Tab_1,res.getDrawable(R.drawable.item))中 Tab_1表示的是显示的信息,而后面表示要引用的资源,即对象的图片位置索引。
TabSpec ts1 = Th.newTabSpec(Tab_1).setIndicator(Tab_1, res.getDrawable(R.drawable.item));

//一下两句分别表示设置ts1的内容以及将ts1添加到Th这个TabHost中。

//下面的意义是一样的所以就不在多写了

ts1.setContent(intent);
Th.addTab(ts1);
intent = new Intent().setClass(this, ArtistsActivity.class);
TabSpec ts2 = Th.newTabSpec(Tab_2).setIndicator(Tab_2, res.getDrawable(R.drawable.artist));

ts2.setContent(intent);
Th.addTab(ts2);
intent = new Intent().setClass(this, AlbumsActivity.class);
TabSpec ts3 = Th.newTabSpec(Tab_3).setIndicator(Tab_3, res.getDrawable(R.drawable.album));

ts3.setContent(intent);
Th.addTab(ts3);
intent = new Intent().setClass(this, SongsActivity.class);
TabSpec ts4 = Th.newTabSpec(Tab_4).setIndicator(Tab_4, res.getDrawable(R.drawable.album));
ts4.setContent(intent);
Th.addTab(ts4);

//设置TabHost当前所在的Tab是id为0的界面
Th.setCurrentTab(0);
}
}

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"

//注意 这里的package的路径有很大作用,如果你要更改包名等同时要进行更改这个包名,因为你更改包名时,你的代码中是同步更改,但是这里不同时更改,需要手动的自己更改,不然会报错误 找不到对应的文件。
package="music.mic.act"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="10" />

//设置android权限的代码自行查看就可以了

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:name=".TestProActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".ListActivity" >
</activity>
<activity android:name=".ArtistsActivity" >
</activity>
<activity android:name=".SongsActivity" >
</activity>
<activity android:name=".AlbumsActivity" >
</activity>
<activity android:name=".MusicActivity" >
</activity>

<service android:name=".MusicService" >
</service>
</application>

</manifest>

同时 当你写java代码写完的时候,最好同时在manifest中进行注册 ,否则遗忘后会报错,注意!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值