Android——播放器和图片轮播

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:layout_width="match_parent"
 5     android:layout_height="match_parent"
 6     android:paddingBottom="@dimen/activity_vertical_margin"
 7     android:paddingLeft="@dimen/activity_horizontal_margin"
 8     android:paddingRight="@dimen/activity_horizontal_margin"
 9     android:paddingTop="@dimen/activity_vertical_margin"
10     tools:context="com.hanqi.musicplayer.MainActivity"
11     android:orientation="vertical"
12     android:background="@drawable/fq">
13
14     <TextView
15         android:layout_width="wrap_content"
16         android:layout_height="wrap_content"
17         android:text="播放状态"
18         android:textColor="#000080"
19         android:id="@+id/tv_1"/>
20
21   <ProgressBar
22       android:layout_width="match_parent"
23       android:layout_height="wrap_content"
24       style="@android:style/Widget.ProgressBar.Horizontal"
25       android:id="@+id/pb_1"/>
26
27     <!--<SeekBar-->
28         <!--android:layout_width="match_parent"-->
29         <!--android:layout_height="wrap_content"-->
30         <!--android:id="@+id/se_1"/>-->
31
32     <LinearLayout
33         android:layout_width="match_parent"
34         android:layout_height="wrap_content">
35         <ImageButton
36             android:layout_width="0dp"
37             android:layout_height="wrap_content"
38             android:layout_weight="1"
39             android:src="@drawable/a1"
40             android:onClick="play_OnClick"/>
41         <ImageButton
42             android:layout_width="0dp"
43             android:layout_height="wrap_content"
44             android:layout_weight="1"
45             android:src="@drawable/a2"
46             android:onClick="pause_OnClick"/>
47         <ImageButton
48             android:layout_width="0dp"
49             android:layout_height="wrap_content"
50             android:layout_weight="1"
51             android:src="@drawable/a3"
52             android:onClick="stop_OnClick"/>
53         <ImageButton
54             android:layout_width="0dp"
55             android:layout_height="wrap_content"
56             android:layout_weight="1"
57             android:src="@drawable/a4"
58             android:onClick="exit_OnClick"/>
59     </LinearLayout>
60
61     <ImageView
62         android:layout_width="330dp"
63         android:layout_height="220dp"
64         android:layout_gravity="center"
65         android:id="@+id/iv_1"/>
66     <ImageView
67         android:layout_width="330dp"
68         android:layout_height="220dp"
69         android:layout_gravity="center"
70         android:src="@drawable/gd"/>
71
72 </LinearLayout>

.xml

  1 package com.hanqi.musicplayer;
  2
  3 import android.media.MediaPlayer;
  4 import android.os.Bundle;
  5 import android.os.Handler;
  6 import android.os.Message;
  7 import android.support.v7.app.AppCompatActivity;
  8 import android.view.View;
  9 import android.widget.ImageView;
 10 import android.widget.ProgressBar;
 11 import android.widget.TextView;
 12
 13 public class MainActivity extends AppCompatActivity {
 14
 15     ProgressBar pb_1;
 16     TextView tv_1;
 17     //SeekBar se_1;
 18     ImageView iv_1;
 19
 20     MediaPlayer mediaPlayer;
 21
 22     Handler handler;
 23
 24     @Override
 25     protected void onCreate(Bundle savedInstanceState) {
 26         super.onCreate(savedInstanceState);
 27         setContentView(R.layout.activity_main);
 28
 29         pb_1=(ProgressBar)findViewById(R.id.pb_1);
 30         tv_1=(TextView)findViewById(R.id.tv_1);
 31         iv_1=(ImageView)findViewById(R.id.iv_1);
 32         //se_1=(SeekBar)findViewById(R.id.se_1);
 33         final int [] iv={R.drawable.f1,
 34                 R.drawable.f2,
 35                 R.drawable.f3,
 36                 R.drawable.f4,
 37                 R.drawable.f5,
 38                 R.drawable.f6,
 39                 R.drawable.f7,
 40                 R.drawable.f8,
 41                 R.drawable.f9,
 42                 R.drawable.f10};
 43
 44         //消息
 45         handler = new Handler(){
 46             @Override
 47             public void handleMessage(Message msg) {
 48                 super.handleMessage(msg);
 49
 50                 iv_1.setImageResource(iv[msg.arg1]);
 51             }
 52         };
 53
 54         //图片轮播  在分线程
 55
 56         new Thread(new Runnable() {
 57             @Override
 58             public void run() {
 59
 60
 61                 for (int i = 0; i < iv.length; i++)
 62                 {
 63
 64                     //iv_1.setImageResource(R.drawable.f1);
 65
 66                     Message message = new Message();
 67
 68                     message.what=0;
 69                     message.arg1=i;
 70                     handler.sendMessage(message);
 71
 72                     try {
 73                         Thread.sleep(3000);
 74                     } catch (Exception e) {
 75                         e.printStackTrace();
 76                     }
 77
 78                     if (i == iv.length - 1) i = -1;
 79                 }
 80             }
 81
 82         }).start();
 83
 84
 85
 86     }
 87
 88     //播放
 89     public void play_OnClick(View v)
 90     {
 91         //构造mediaPlayer
 92         if (mediaPlayer == null)
 93         {
 94             //用静态方法构造
 95             mediaPlayer = MediaPlayer.create(this,R.raw.test);
 96
 97             mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
 98                 @Override
 99                 public void onCompletion(MediaPlayer mp) {
100
101                     tv_1.setText("播放状态:播放完成");
102
103                     mediaPlayer.reset();//重置
104                     mediaPlayer.release();//释放
105
106                     mediaPlayer = null;
107                 }
108             });
109
110             //设置进度条的最大进度
111             pb_1.setMax(mediaPlayer.getDuration());
112
113             //启动分线程
114             new Thread(){
115                 @Override
116                 public void run() {
117
118                     //循环条件
119                     while (mediaPlayer!=null)
120                     {
121                         //更新进度
122                         // 设置当前进度:和播放器的当前进度有关
123                         pb_1.setProgress(mediaPlayer.getCurrentPosition());
124
125                         try
126                         {
127                             Thread.sleep(500);
128                         }
129                         catch (Exception e)
130                         {
131                             e.printStackTrace();
132                         }
133                     }
134                 }
135             }.start();
136
137         }
138
139
140 //        new Thread(new Runnable() {
141 //            @Override
142 //            public void run() {
143 //                while (true) {
144 //
145 //                    pb_1.setProgress(mediaPlayer.getCurrentPosition());
146 //
147 //                    try
148 //                    {
149 //                        Thread.sleep(1000);
150 //                    }
151 //                    catch (Exception e)
152 //                    {
153 //                        e.printStackTrace();
154 //                    }
155 //
156 //
157 //                }
158 //            }
159 //        })
160 //                .start();
161
162         mediaPlayer.start();
163
164         tv_1.setText("播放状态:正在播放");
165     }
166
167     //停止
168     public void stop_OnClick(View v)
169     {
170         if (mediaPlayer!=null)
171         {
172             mediaPlayer.stop();
173             mediaPlayer.reset();
174             mediaPlayer.release();
175             mediaPlayer = null;
176
177             pb_1.setProgress(0);
178
179             tv_1.setText("播放状态:停止播放");
180         }
181     }
182
183     //暂停
184     public void pause_OnClick(View v)
185     {
186         if (mediaPlayer !=null&&mediaPlayer.isPlaying())
187         {
188             mediaPlayer.pause();
189
190             tv_1.setText("播放状态:暂停播放");
191         }
192     }
193
194     //退出
195     public void exit_OnClick(View v)
196     {
197         stop_OnClick(v);
198
199         finish();
200     }
201 }

.java

时间: 2024-10-29 19:11:20

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

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

PS:一个bug又折腾了一个下午....哎... 学习内容: 1.Android利用ViewPager和PagerAdapter实现图片轮播... 2.使用反射机制获取Android的资源信息...     图片轮播是非常常见的一种动画效果,在app中也是很常用的一个效果,这里就简单的来实现一下这个功能,Android中想要实现图片轮播,需要使用到ViewPager这个控件来实现,这个控件的主要功能是实现图片的滑动效果...那么有了滑动,在滑动的基础上附上图片也就实现了图片轮播的效果...这个控

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

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/17482089 大家好,好久不见了,最近由于工作特别繁忙,已经有一个多月的时间没写博客了,我也是深感惭愧.那么今天的这篇既然是阔别了一个多月的文章,当然要带来更加给力点的内容了,那么话不多说,赶快进入到今天的正题吧. 说 到图片轮播器,很多的Android应用中都会带有这个功能,比如说网易新闻.淘宝等.最新我们公司的一款应用也加入了这个功能,并且在图片轮播的基础上 还增加了三维立体

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

原文:WPF技术触屏上的应用系列(四): 3D效果图片播放器(图片立体轮放.图片立体轮播.图片倒影立体滚动)效果实现 去年某客户单位要做个大屏触屏应用,要对档案资源进行展示之用.客户端是Window7操作系统,54寸大屏电脑电视一体机.要求有很炫的展示效果,要有一定的视觉冲击力,可触控操作.当然满足客户的要求也可以有其它途径.但鉴于咱是搞 .NET技术的,首先其冲想到的微软WPF方面,之前对WPF的了解与学习也只是停留在比较浅的层面,没有进一步深入学习与应用.所以在项目接来以后,也就赶鸭子上架了

图片轮播器

? 1 SB里只需要两个控件: UIScrollView UIPageControl ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 7

实现一个图片轮播-3d播放效果

前言:最近在做一个音乐播放器,首页要做一个图片轮播,看了bootstrap的carousel插件以及移动端的swipe.js库,都是平面图片轮播的效果,所以自己想着实现类似网易云app里那种3d图片轮播的效果,所以写下此文 使用方法: 首先,引入Swipe.js和Swipe.css 定义轮播列表ul[data-ride="swipe"],然后每一个轮播项都加上类 class="item" : 1 <!DOCTYPE html> 2 <html la

IOS 05 UIScrollView介绍 图片轮播器

移动设备的屏幕?大?小是极其有限的,因此直接展?示在?用户眼前的内容也相当有限 当展?示的内容较多,超出?一个屏幕时,?用户可通过滚动?手势来查看屏幕以外的内容 普通的UIView不具备滚动功能,不能显?示过多的内容 UIScrollView是?一个能够滚动的视图控件,可以?用来展?示?大量的内容,并且可以通过滚 动查看所有的内容 在IOS中UIScrollView这个控件还是比较常用和重要的. 很多时候,我们想在UIScrollView正在滚动 或 滚动到某个位置 或者 停?止滚动 时做?一些

UISCrollView —— 图片轮播器封装实现(三)——(第三讲)

1.分析 利用xib布局,然后自定义一个UIView,解析xib,然后利用控制器传入数据,将其加载到控制器的view上展示即可 2. 程序结构 3. 代码具体实现 1>  xib文件 2>  创建类 XMGPageView,然后将其与xib文件关联,选中xib文件,然后设置下文中 " custom class " 为定义的类,让其来管理xib 1>    (如图,设置xib与类关联) 2>  XMGPageView.h 文件中,声明分页图片数组属性,及其一个快速

UIScrollView实现图片轮播器及其无限循环效果

图片轮播器: 一.实现效果 实现图片的自动轮播            二.实现代码 storyboard中布局 代码: 1 #import "YYViewController.h" 2 3 @interface YYViewController () <UIScrollViewDelegate> 4 @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 5 /** 6 * 页码 7 */ 8 @prop

UISCrollView —— 图片轮播器实现(三)——(第二讲)

1. 所用知识点 1> UIScrollView的基本属性,和UIPageControl设置,还有就是要用到NSTimer来定时实现UIScrollView的图片轮播 2> NSTimer简单介绍: 2.1  NSTimer叫做“定时器”,它的作用如下 * 在指定的时间执行指定的任务 * 每隔一段时间执行指定的任务 2.2  NSTimer简单使用: 1> 调用下面的方法就会开启一个定时任务 + (NSTimer *)scheduledTimerWithTimeInterval:(NST