• Android——播放器和图片轮播


    layout文件:

     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.musicplay.MainActivity"
    11     android:orientation="vertical">
    12 
    13     <TextView
    14         android:layout_width="wrap_content"
    15         android:layout_height="wrap_content"
    16         android:text="播放状态:未播放"
    17         android:id="@+id/tv_1"/>
    18     <ProgressBar
    19         android:layout_width="match_parent"
    20         android:layout_height="wrap_content"
    21         android:id="@+id/pb_1"
    22         style="@android:style/Widget.ProgressBar.Horizontal"/>
    23     <LinearLayout
    24         android:layout_width="match_parent"
    25         android:layout_height="wrap_content">
    26         <Button
    27             android:layout_width="0dp"
    28             android:layout_height="wrap_content"
    29             android:layout_weight="1"
    30             android:onClick="play_onClick"
    31             android:text="播放"
    32             android:background="@drawable/a4"/>
    33         <Button
    34             android:layout_width="0dp"
    35             android:layout_height="wrap_content"
    36             android:layout_weight="1"
    37             android:onClick="pause_onClick"
    38             android:text="暂停"
    39             android:background="@drawable/a4"/>
    40         <Button
    41             android:layout_width="0dp"
    42             android:layout_height="wrap_content"
    43             android:layout_weight="1"
    44             android:onClick="stop_onClick"
    45             android:text="停止"
    46             android:background="@drawable/a4"/>
    47         <!--<Button-->
    48             <!--android:layout_width="0dp"-->
    49             <!--android:layout_height="wrap_content"-->
    50             <!--android:layout_weight="1"-->
    51             <!--android:onClick="exit_onClick"-->
    52             <!--android:text="退出"/>-->
    53     </LinearLayout>
    54     <TextView
    55         android:layout_width="match_parent"
    56         android:layout_height="wrap_content"
    57         android:id="@+id/tv_2"/>
    58     <ImageView
    59         android:layout_width="match_parent"
    60         android:layout_height="wrap_content"
    61         android:id="@+id/iv_1"/>
    62 </LinearLayout>
    activity_main

    java类:

      1 package com.hanqi.musicplay;
      2 
      3 import android.media.MediaPlayer;
      4 import android.os.Handler;
      5 import android.os.Message;
      6 import android.support.v7.app.AppCompatActivity;
      7 import android.os.Bundle;
      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     MediaPlayer mediaPlayer;
     18     ImageView iv_1;
     19     Handler handler;
     20     @Override
     21     protected void onCreate(Bundle savedInstanceState) {
     22         super.onCreate(savedInstanceState);
     23         setContentView(R.layout.activity_main);
     24         pb_1 = (ProgressBar)findViewById(R.id.pb_1);
     25         tv_1 = (TextView)findViewById(R.id.tv_1);
     26         iv_1 = (ImageView)findViewById(R.id.iv_1);
     27 
     28         final int[]iv = {R.drawable.b11,R.drawable.b21,R.drawable.b3,R.drawable.b41};
     29         handler = new Handler(){
     30             @Override
     31             public void handleMessage(Message msg) {
     32                 super.handleMessage(msg);
     33                 iv_1.setImageResource(iv[msg.arg1]);
     34             }
     35         };
     36         //图片轮播 在分线程
     37         new Thread(new Runnable() {
     38             @Override
     39             public void run() {
     40 
     41                for (int i = 0;i<iv.length;i++)
     42                 {
     43                     //iv_1.setImageResource(iv[i]);
     44                     Message message = new Message();
     45                     message.what = 0;
     46                     message.arg1 = i;
     47                     handler.sendMessage(message);
     48                     try {
     49                         Thread.sleep(2000);
     50                     }
     51                     catch (Exception e)
     52                     {
     53 
     54                     }
     55                     if (i == iv.length-1)i=-1;
     56                 }
     57             }
     58         }).start();
     59 
     60     }
     61     //播放
     62     public void play_onClick(View v)
     63     {
     64         //构造mediaPlayer
     65         if (mediaPlayer == null)
     66         {
     67             //用静态方法构造
     68             mediaPlayer = MediaPlayer.create(this,R.raw.test);
     69             mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
     70                 @Override
     71                 public void onCompletion(MediaPlayer mp) {
     72                     tv_1.setText("播放状态:播放完成");
     73                     mediaPlayer.reset();
     74                     mediaPlayer.release();
     75                     mediaPlayer = null;
     76                 }
     77             });
     78             //设置进度条的最大长度
     79             pb_1.setMax(mediaPlayer.getDuration());
     80             //启动分线程
     81             new Thread(){
     82                 @Override
     83                 public void run() {
     84                     //循环条件
     85                     while (mediaPlayer != null)
     86                     {
     87                         //更新进度
     88                         //设置当前进度值:和播放器的当前进度有关
     89                         pb_1.setProgress(mediaPlayer.getCurrentPosition());
     90                         try {
     91                             Thread.sleep(500);
     92                         }
     93                         catch (Exception e)
     94                         {
     95 
     96                         }
     97                     }
     98                 }
     99             }.start();
    100         }
    101         mediaPlayer.start();
    102         tv_1.setText("播放状态:正在播放");
    103     }
    104     //停止
    105     public void stop_onClick(View v)
    106     {
    107         if (mediaPlayer != null)
    108         {
    109             mediaPlayer.stop();
    110             mediaPlayer.reset();
    111             mediaPlayer.release();
    112             mediaPlayer = null;
    113             pb_1.setProgress(0);
    114             tv_1.setText("播放状态:停止播放");
    115         }
    116     }
    117     //暂停
    118     public void pause_onClick(View v)
    119     {
    120         if (mediaPlayer != null && mediaPlayer.isPlaying())
    121         {
    122            mediaPlayer.pause();
    123             tv_1.setText("播放状态:暂停播放");
    124         }
    125 
    126     }
    127     //退出
    128 //    public void exit_onClick(View v)
    129 //    {
    130 //        stop_onClick(v);
    131 //        finish();
    132 //    }
    133 }
    MainActivity

    效果为:

  • 相关阅读:
    五层原理体系结构的简单分析
    Simple Factory 简单工厂模式(静态工厂)
    css一个图片包含多个图片|网站侧栏导航
    百度地图、高德地图的数据从哪里得到的?
    浏览器开发
    开发一款浏览器内核需要学习哪些方面的知识?
    使用PowerDesigner进行数据库建模入门
    How to create a search engine
    合并两个有序数组
    STL中的algorithm
  • 原文地址:https://www.cnblogs.com/hanazawalove/p/5599643.html
Copyright © 2020-2023  润新知