Android——播放器和图片轮播
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——播放器和图片轮播的更多相关文章
- Android学习笔记之图片轮播...
PS:一个bug又折腾了一个下午....哎... 学习内容: 1.Android利用ViewPager和PagerAdapter实现图片轮播... 2.使用反射机制获取Android的资源信息... ...
- Android高级图片滚动控件,编写3D版的图片轮播器
转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博 ...
- WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放、图片立体轮播、图片倒影立体滚动)效果实现
原文:WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放.图片立体轮播.图片倒影立体滚动)效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7 ...
- Android 开发最牛的图片轮播控件,基本什么都包含了。
Android图片轮播控件 源码下载地址: Android 图片轮播 现在的绝大数app都有banner界面,实现循环播放多个广告图片和手动滑动循环等功能.因为ViewPager并不支持循环翻页, ...
- Android中使用开源框架android-image-indicator实现图片轮播部署
之前的博文中有介绍关于图片轮播的实现方式,分别为(含超链接): 1.<Android中使用ViewFlipper实现屏幕切换> 2.<Android中使用ViewPager实现屏幕页 ...
- Android图片轮播控件
Android广告图片轮播控件,支持无限循环和多种主题,可以灵活设置轮播样式.动画.轮播和切换时间.位置.图片加载框架等! 使用步骤 Step 1.依赖banner Gradle dependenci ...
- Android——图片轮播
Android技术——轮播功能 轮播需要什么? 答:实现图片与广告语展示.循环播发以及手动切换.支持加载本地与网络图片. 性能优化? 答:多张图片与指示器展示.自动与定时.循环播发.滑动流畅并且无卡顿 ...
- Android开发(九)——ViewFlipper实现图片轮播
图片轮播的实现方法有很多,主要有View.ViewFilpper.ViewFilpper系统自带的一个多页面管理控件,它可以实现子界面的自动切换. 首先 需要为ViewFlipper加入View (1 ...
- 推荐一款超级漂亮的HTML5 CSS3的图片轮播器
最近在学习HTML5和CSS3,印象最深的是CSS3的动画功能,不仅有浏览器原生支持,执行效率高,而且免去在js中自己管理timer. 本来想写一个图片轮播器练练手,结果在网上发现一个国人写的开源的图 ...
随机推荐
- win8没有无线网络适配器问题
1. 先关闭ssid : 命令提示符(管理员)输入 :netsh wlan set hostednetwork mde=disallow ssid 2. 再设置无线名称和密码 :netsh wlan ...
- php序列化和反序列化
一 使用系统函数serialize和unserilazie <?php class A { public $a = "aa"; public $b = 10; functio ...
- jQuery是什么?
jQuery就是javascript的一个库,把我们常用的一些功能进行了封装,方便我们来调用,提高我们的开发效率. 极大地简化了 JavaScript 编程. Javascipt跟jQuery的区别: ...
- C#导入Excel遇到数字字母混合列数据丢失解决
错误重现: ----------------------------------------------------------------------- 在导入Excel读取数据时,其中的一个字段保 ...
- net iis 部署中出现的问题及解决方案
1.HTTP500.21 错误 解决方法:重新注册asp.net C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe –i ...
- mysql批量替换单字段
update 表名 set 字段名 = replace(字段名,'被替换内容','要替换内容'); 指定有人查这个!!!
- WebSocket通信协议
var ws = new WebSocket("ws://echo.websocket.org"); ws.onopen = function(){ws.send("Te ...
- AI第一次作业
1. 你认为什么是人工智能? 在我看来,人工智能是是对人的意识.思维的信息过程的高度模拟,虽然它不是人的智能,但是高度模仿人的思考方式,加上它的信息高度集中,对信息的处理速度快,甚至于超过 ...
- linux 安装一些命令
一.安装wget命令: debian 或者 ubuntu : sudo apt-get install wget centos : sudo yum -y install wget 二.安装rz.sz ...
- <转>你相信外星人的存在吗
来自为知笔记(Wiz)