layout文件:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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.hanqi.musicplay.MainActivity"
android:orientation="vertical"> <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="播放状态:未播放"
android:id="@+id/tv_1"/>
<ProgressBar
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/pb_1"
style="@android:style/Widget.ProgressBar.Horizontal"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="play_onClick"
android:text="播放"
android:background="@drawable/a4"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="pause_onClick"
android:text="暂停"
android:background="@drawable/a4"/>
<Button
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="stop_onClick"
android:text="停止"
android:background="@drawable/a4"/>
<!--<Button-->
<!--android:layout_width="0dp"-->
<!--android:layout_height="wrap_content"-->
<!--android:layout_weight="1"-->
<!--android:onClick="exit_onClick"-->
<!--android:text="退出"/>-->
</LinearLayout>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/tv_2"/>
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/iv_1"/>
</LinearLayout>

activity_main

java类:

 package com.hanqi.musicplay;

 import android.media.MediaPlayer;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.TextView; public class MainActivity extends AppCompatActivity { ProgressBar pb_1;
TextView tv_1;
MediaPlayer mediaPlayer;
ImageView iv_1;
Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pb_1 = (ProgressBar)findViewById(R.id.pb_1);
tv_1 = (TextView)findViewById(R.id.tv_1);
iv_1 = (ImageView)findViewById(R.id.iv_1); final int[]iv = {R.drawable.b11,R.drawable.b21,R.drawable.b3,R.drawable.b41};
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
iv_1.setImageResource(iv[msg.arg1]);
}
};
//图片轮播 在分线程
new Thread(new Runnable() {
@Override
public void run() { for (int i = 0;i<iv.length;i++)
{
//iv_1.setImageResource(iv[i]);
Message message = new Message();
message.what = 0;
message.arg1 = i;
handler.sendMessage(message);
try {
Thread.sleep(2000);
}
catch (Exception e)
{ }
if (i == iv.length-1)i=-1;
}
}
}).start(); }
//播放
public void play_onClick(View v)
{
//构造mediaPlayer
if (mediaPlayer == null)
{
//用静态方法构造
mediaPlayer = MediaPlayer.create(this,R.raw.test);
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
tv_1.setText("播放状态:播放完成");
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;
}
});
//设置进度条的最大长度
pb_1.setMax(mediaPlayer.getDuration());
//启动分线程
new Thread(){
@Override
public void run() {
//循环条件
while (mediaPlayer != null)
{
//更新进度
//设置当前进度值:和播放器的当前进度有关
pb_1.setProgress(mediaPlayer.getCurrentPosition());
try {
Thread.sleep(500);
}
catch (Exception e)
{ }
}
}
}.start();
}
mediaPlayer.start();
tv_1.setText("播放状态:正在播放");
}
//停止
public void stop_onClick(View v)
{
if (mediaPlayer != null)
{
mediaPlayer.stop();
mediaPlayer.reset();
mediaPlayer.release();
mediaPlayer = null;
pb_1.setProgress(0);
tv_1.setText("播放状态:停止播放");
}
}
//暂停
public void pause_onClick(View v)
{
if (mediaPlayer != null && mediaPlayer.isPlaying())
{
mediaPlayer.pause();
tv_1.setText("播放状态:暂停播放");
} }
//退出
// public void exit_onClick(View v)
// {
// stop_onClick(v);
// finish();
// }
}

MainActivity

效果为:

Android——播放器和图片轮播的更多相关文章

  1. Android学习笔记之图片轮播...

    PS:一个bug又折腾了一个下午....哎... 学习内容: 1.Android利用ViewPager和PagerAdapter实现图片轮播... 2.使用反射机制获取Android的资源信息... ...

  2. Android高级图片滚动控件,编写3D版的图片轮播器

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博 ...

  3. WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放、图片立体轮播、图片倒影立体滚动)效果实现

    原文:WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放.图片立体轮播.图片倒影立体滚动)效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7 ...

  4. Android 开发最牛的图片轮播控件,基本什么都包含了。

    Android图片轮播控件  源码下载地址: Android 图片轮播 现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能.因为ViewPager并不支持循环翻页, ...

  5. Android中使用开源框架android-image-indicator实现图片轮播部署

    之前的博文中有介绍关于图片轮播的实现方式,分别为(含超链接): 1.<Android中使用ViewFlipper实现屏幕切换> 2.<Android中使用ViewPager实现屏幕页 ...

  6. Android图片轮播控件

    Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式.动画.轮播和切换时间.位置.图片加载框架等! 使用步骤 Step 1.依赖banner Gradle dependenci ...

  7. Android——图片轮播

    Android技术——轮播功能 轮播需要什么? 答:实现图片与广告语展示.循环播发以及手动切换.支持加载本地与网络图片. 性能优化? 答:多张图片与指示器展示.自动与定时.循环播发.滑动流畅并且无卡顿 ...

  8. Android开发(九)——ViewFlipper实现图片轮播

    图片轮播的实现方法有很多,主要有View.ViewFilpper.ViewFilpper系统自带的一个多页面管理控件,它可以实现子界面的自动切换. 首先 需要为ViewFlipper加入View (1 ...

  9. 推荐一款超级漂亮的HTML5 CSS3的图片轮播器

    最近在学习HTML5和CSS3,印象最深的是CSS3的动画功能,不仅有浏览器原生支持,执行效率高,而且免去在js中自己管理timer. 本来想写一个图片轮播器练练手,结果在网上发现一个国人写的开源的图 ...

随机推荐

  1. java发送http的get、post请求[转]

    原文链接:http://www.cnblogs.com/zhuawang/archive/2012/12/08/2809380.html package wzh.Http; import java.i ...

  2. 杭电ACM1002

    原题:http://acm.hdu.edu.cn/showproblem.php?pid=1002 #include <stdio.h> #include <string.h> ...

  3. 抽象工厂模式(Abstract Factory Pattern)

    动机(Motivation) 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时,由于需求的变化,往往存在更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象创建方法(new), ...

  4. 【转】RadControls for Silverlight(学习2-RadDataPager)

    引用地址:http://www.cnblogs.com/forrestsun/archive/2011/05/15/2046894.html <Grid x:Name="LayoutR ...

  5. 微信openid获取(php),

    在看这个的基础上有阅读过微信的相关文档, 这段url是给用户的,当用户点击进去后会出一个,确认登录授权,需要用户点击授权之后跳到你的授权回调地址(注意:下面php代码必须放在授权回调地址中:比如回调地 ...

  6. 硬件抽象层——HAL

    (一)为什么要在android中加入HAL Linux系统中Linux驱动有两种类型的代码:访问硬件寄存器的代码——调用的Linux内核的标准函数进行的标准操作  业务逻辑代码——有些企业或个人并不想 ...

  7. hdu 2074

    ps:WA了好多次...因为首先是n=1的情况,其次是中心花色和外花色,中心花色也有可能是最外层花色....很无语. 然后就是格式问题咯. 代码 #include "stdio.h" ...

  8. MyEclipse中直接打开class文件的方法

    安装步骤: 1>下载jad.exe(这是一个class文件的反编译工具,但是是命令行运行编译,使用起来不是很方便:), 将其拷贝到%JAVA_HOME%/bin目录下(其他目录也可). 2> ...

  9. Cookies的作用

    Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密).Cookies就是服务器暂存放在你的电脑里的资料(.tx ...

  10. 华为交换机netstream配置

    1.配置交换机的流发送 [系统视图]ip netstream timeout active 100         流活跃时间 [系统视图]ip netstream timeout inactive ...