安卓手机App开发:

(包括打电话,发短信,音乐播放器,划屏)

环境的搭建

1.软件下载:

Jdk-6u32-windows-x64.exe

Android-sdk_r18-windows.zip

Eclipse-jee-indigo-SR2-win32-x86_64.zip

2环境的搭建概要:

安装Jdk-6u32-windows-x64.exe,根据自己的习惯安装在相应的目录下(Jdk下载点击打开链接)。

完成Eclipse的解压安装。

解压Android-sdk_r18-windows.zip文件,安装android SDK(SDK下载点击打开链接)。

打开Eclipse后选择helpinstall New Software 弹出”Available Software对话框的SDK插件ADT(Eclipse下载点击打开链接)。

创建ADT,完成基本系统安装和配置。

测试开发环境,搭建好开发环境后创建一个Hello world工程。

//MainActivity.java
package com.example.activity;import java.io.IOException;import android.app.Activity;
import android.content.Intent;
import android.content.res.AssetFileDescriptor;
import android.content.res.AssetManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;public class MainActivity extends Activity {private Button button;private Button btnPlay;private Button btnStop;private TextView tvName;private int mDownx;private int mDowny;Toast mMoveToast;Toast mDownToast;private AssetManager assetManager;// assets文件夹private MediaPlayer mPlayer;// 播放音乐类@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);init();}private void init() {button = (Button) findViewById(R.id.main_id);btnPlay=(Button) findViewById(R.id.btn_play);btnStop=(Button) findViewById(R.id.btn_stop);tvName=(TextView) findViewById(R.id.tv_name);button.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent(MainActivity.this, MyActivity.class);startActivity(intent);}});btnPlay.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {startPlayer();}});btnStop.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {stopPlayer();}});}/** 启动播放*/public void startPlayer() {try {if (mPlayer == null) {tvName.setText("aa.mp3");assetManager = getAssets();AssetFileDescriptor fileDescriptor = assetManager.openFd("aa.mp3");mPlayer = new MediaPlayer();mPlayer.setDataSource(fileDescriptor.getFileDescriptor());mPlayer.setLooping(true);// 设置重复播放}if (!mPlayer.isPlaying()) {mPlayer.prepare();// 准备播放mPlayer.start();// 播放}} catch (IOException e) {e.printStackTrace();}}//停止播放public void stopPlayer(){if(mPlayer!=null&&mPlayer.isPlaying()){mPlayer.stop();}}@Overrideprotected void onPause() {super.onPause();stopPlayer();}@Overridepublic boolean onTouchEvent(MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:mDownx = (int) event.getX();mDowny = (int) event.getY();if (mDownToast == null) {mDownToast = Toast.makeText(this, "手指按下的坐标:x-->" + mDownx + "  y-->" + mDowny, Toast.LENGTH_SHORT);mDownToast.setGravity(Gravity.TOP, 0, 100);} else {mDownToast.setText("手指按下的坐标:x-->" + mDownx + "  y-->" + mDowny);}mDownToast.show();break;case MotionEvent.ACTION_MOVE:int x = (int) event.getX();int y = (int) event.getY();int moveX = mDownx - x;int movey = mDowny - y;if (moveX > 20 || movey > 20) {if (mMoveToast == null) {mMoveToast = Toast.makeText(this, "手指滑动的距离:moveX-->" + moveX + "  movey-->" + movey,Toast.LENGTH_SHORT);mMoveToast.setGravity(Gravity.CENTER, 0, 0);} else {mMoveToast.setText("手指滑动的距离:moveX-->" + moveX + "  movey-->" + movey);}mMoveToast.show();}break;}return super.onTouchEvent(event);}}

//MyActivity .java
package com.example.activity;import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;public class MyActivity extends Activity {private EditText mEtPhone;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_my);mEtPhone = (EditText) findViewById(R.id.et_phone);// 打电话findViewById(R.id.btn_call).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String phone = mEtPhone.getText().toString();if (!TextUtils.isEmpty(phone) && phone.length() == 11) {Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phone));startActivity(intent);}}});//发短信findViewById(R.id.btn_send_sms).setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {String phone = mEtPhone.getText().toString();if (!TextUtils.isEmpty(phone) && phone.length() == 11) {Uri uri = Uri.parse("smsto:" + phone);Intent intent = new Intent(Intent.ACTION_SENDTO, uri);intent.putExtra("sms_body", "");startActivity(intent);}}});}
}

//activity_main.xml
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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.activity.MainActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="欢迎使用" /><Buttonandroid:id="@+id/main_id"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/textView1"android:layout_below="@+id/textView1"android:layout_marginTop="21dp"android:text="点击" /><Buttonandroid:id="@+id/btn_play"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/main_id"android:layout_centerVertical="true"android:layout_marginLeft="18dp"android:text="播放" /><Buttonandroid:id="@+id/btn_stop"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_toRightOf="@+id/textView1"android:text="暂停" /><TextViewandroid:id="@+id/tv_name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_above="@+id/btn_play"android:layout_alignLeft="@+id/btn_play"android:layout_alignRight="@+id/btn_stop"android:layout_marginBottom="25dp"android:layout_marginLeft="23dp"android:text="歌曲名称" /></RelativeLayout>

//activity_my.xml
<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:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.example.activity.MyActivity" ><TextViewandroid:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:text="祝您使用愉快" /><EditTextandroid:id="@+id/et_phone"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_below="@+id/textView1"android:layout_marginTop="14dp"android:hint="电话号码"android:inputType="phone"android:maxLength="11"android:padding="5dp" ><requestFocus /></EditText><Buttonandroid:id="@+id/btn_send_sms"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBottom="@+id/btn_call"android:layout_alignRight="@+id/et_phone"android:layout_marginRight="20dp"android:text="发短信" /><Buttonandroid:id="@+id/btn_call"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignLeft="@+id/et_phone"android:layout_below="@+id/et_phone"android:layout_marginTop="21dp"android:text="打电话" /></RelativeLayout>

//ActivityManifest<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.example.activity"android:versionCode="1"android:versionName="1.0" ><uses-sdkandroid:minSdkVersion="14"android:targetSdkVersion="20" /><uses-permission android:name="android.permission.CALL_PHONE"/><uses-permission android:name="android.permission.SEND_SMS"/><applicationandroid:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme" ><activityandroid:name=".MainActivity"android:label="@string/app_name" ><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activityandroid:name=".MyActivity"android:label="@string/title_activity_my" ></activity></application></manifest></span>

android手机App的开发——音乐播放器相关推荐

  1. Android Service的使用方法 音乐播放器实例

    Service翻译成中文是服务,熟悉Windows 系统的同学一定知道很熟悉了.Android里的Service跟Windows里的Service功能差不多,就是一个不可见的进程在后台执行,避免被用户 ...

  2. Android应用--简、美音乐播放器原型放送(作者:小巫)

    Android应用--简.美音乐播放器原型放送 2013年7月5日简.美音乐播放器开发 前言:小巫的简.美音乐播放器从5月7号开始开发,之前以为时间很充足,也没有估量整个软件的需求,如果简单实现基本的 ...

  3. Android学习之路4——音乐播放器后台播放

    Android学习之路4--音乐播放器后台播放 一.实验题目 简单音乐播放器 二.实现内容 实现一个简单的播放器,要求功能有: 播放.暂停.停止.退出功能,按停止键会重置封面转角,进度条和播放按钮:按 ...

  4. Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)

    Android应用--简.美音乐播放器获取专辑图片(自定义列表适配器) 2013年7月3日简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词 ...

  5. Android应用--简、美音乐播放器增加音量控制

    Android应用--简.美音乐播放器增加音量控制 2013年6月26日简.美音乐播放器继续完善中.. 题外话:上一篇博客是在6月11号发的,那篇博客似乎有点问题,可能是因为代码结构有点乱的原因,很难 ...

  6. Android应用--简、美音乐播放器实现专辑倒影效果

    Android应用--简.美音乐播放器实现专辑倒影效果 2013年7月4日 简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词与专辑界面 5 ...

  7. vueJs开发音乐播放器第二篇(点击歌单跳出详情页)

    继上一篇开发音乐播放器歌单列表页 (1.使用router定义跳转链接,2. 使用axios得到音乐第三方数据,并渲染到页面上,3.组件之间传值(props)) 1.接下来使用了vue-router路由 ...

  8. 【网络收录】基于51单片机开发音乐播放器

    [网络收录]基于51单片机开发音乐播放器 本文作者:天析 作者邮箱:2200475850@qq.com 发布时间: Thu, 22 May 2014 18:14:00 +0800 特别声明:本资料来源 ...

  9. linux 基于qt开发的音乐,Linux下用QT开发音乐播放器.pdf

    嵌入式课程设计报告 - Linux 在 下开发音乐播放器 李荣贵 141578 一.概述 按课程要求,在Linux环境下开发了一款简易的音乐播放器软件, Mini 名为 " 音乐播放器&qu ...

最新文章

  1. Pandas判断dataframe是否为空
  2. 57. Leetcode 257. 二叉树的所有路径 (二叉树-二叉树路径和)
  3. java web右键菜单,win7右键菜单管理
  4. 1.1_SSH项目开发流程
  5. MDS 9148 配置
  6. 北大保安又双叒…出“传奇”!这次是挑战“天下第一考”
  7. 大数据处理黑科技:揭秘PB级数仓GaussDB(DWS) 并行计算技术
  8. PDE2 three fundamental examples
  9. android 发送显示广播,如何查看Android系统当前发送了什么广播
  10. 【转】Java重构-策略模式、状态模式、卫语句
  11. 47. 避免产生直写型(write-only)的代码
  12. MATLAB神经网络工具箱学习
  13. 《上海交通大学饮水思源paper(论文)板实用手册(第二版)》出炉
  14. 使用 React Testing LIbrary 的 15 个常见错误
  15. Python实现Kmeans文本聚类
  16. 微信 qq浏览器服务器,QQ浏览器与微信团队合作推出“微信电脑版”
  17. mysql 读写分离_详解MySQL读写分离
  18. [ffmpeg][goav]ffmpeg代码例子pcmu重采样并转码aac格式
  19. 查看本地硬盘raid级别linux,linux 下查看硬盘型号、大小等信息(含Raid)
  20. 市场分析-全球与中国木槿果实提取物市场现状及未来发展趋势

热门文章

  1. 2021 中山大学 人工智能学院 推免夏令营 经历
  2. “巴青虫草,雅魅天下 ”巴青县第三届冬虫夏草采挖体验活动盛大开幕
  3. 学硕VS专硕,到底该选哪个?
  4. APP中H5页面实现拨打电话功能
  5. 谈一谈关于Combox中当SelectedIndex=“0“ 无效的问题
  6. pytorch 中register_buffer()
  7. 盘点五大类 DeFi 数据分析工具
  8. 手把手教你在Windows和Linux下安装Redis及了解Redis基本操作
  9. Linux驱动——mmc host controller(九)
  10. STM32Cubemx—— ADS1118二差分驱动程序移植