Android——播放器和图片轮播
2016-06-20 09:36
465 查看
layout文件:
MainActivity
效果为:
![](https://images2015.cnblogs.com/blog/893920/201606/893920-20160620093531569-582114056.jpg)
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
效果为:
![](https://images2015.cnblogs.com/blog/893920/201606/893920-20160620093531569-582114056.jpg)
![](https://images2015.cnblogs.com/blog/893920/201606/893920-20160620093542022-1541162633.jpg)
相关文章推荐
- android 状态栏(StatusBar)
- android 获取图片的长度和宽度
- Android数据库升级且表添加新列
- Android系统一些默认值的设置
- Android开发多线程断点续传下载器
- Android 用canvas画图
- Android消息传递之EventBus 3.0使用详解(三)
- Android开发框架xUtils3.x新手教学(四) BitmapUtils图片异步加载
- Android Studi 运行报错 Duplicate files copied in APK META-INF/LICENSE.txt 解决方案
- 关于Android目录结构
- Android-onInterceptTouchEvent()和onTouchEvent()总结
- Android官方开发文档Training系列课程中文版:通知用户之创建不同导航方式的Activity
- 自己动手编译Android源码
- android笔记之首页框架搭建
- Android:Android Design中的TextInputLayout
- EventBus3.0源码解析
- Android Java层的anti-hooking技巧
- 试了一个获取Android系统权限的工具Kingroot,运气不错,取得root了。
- Android下解析xml文档,笔记一下
- android sdk 9 patches 工具使用方法