BVB Source Codes

The Android source code for beginners music player design and source code Show C_MusicPlayerActivity.java Source code

Return Download The Android source code for beginners music player design and source code: download C_MusicPlayerActivity.java Source code - Download The Android source code for beginners music player design and source code Source code - Type:.java
  1. package com.android.cwd;
  2.  
  3. import android.app.Activity;
  4. import android.app.Dialog;
  5. import android.app.Notification;
  6. import android.app.NotificationManager;
  7. import android.app.PendingIntent;
  8. import android.content.Context;
  9. import android.content.Intent;
  10. import android.graphics.Bitmap;
  11. import android.graphics.Bitmap.Config;
  12. import android.graphics.BitmapFactory;
  13. import android.graphics.Canvas;
  14. import android.graphics.Color;
  15. import android.graphics.LinearGradient;
  16. import android.graphics.Matrix;
  17. import android.graphics.Paint;
  18. import android.graphics.PorterDuff.Mode;
  19. import android.graphics.PorterDuffXfermode;
  20. import android.graphics.Shader.TileMode;
  21. import android.graphics.drawable.BitmapDrawable;
  22. import android.net.Uri;
  23. import android.os.Bundle;
  24. import android.view.KeyEvent;
  25. import android.view.View;
  26. import android.view.animation.AnimationUtils;
  27. import android.widget.AdapterView;
  28. import android.widget.AdapterView.OnItemClickListener;
  29. import android.widget.Button;
  30. import android.widget.GridView;
  31. import android.widget.ImageButton;
  32. import android.widget.ImageView;
  33. import android.widget.ListView;
  34. import android.widget.RelativeLayout;
  35. import android.widget.SeekBar;
  36. import android.widget.SeekBar.OnSeekBarChangeListener;
  37. import android.widget.TextView;
  38. import android.widget.Toast;
  39.  
  40. /**
  41.  * 音乐播放界面主类
  42.  *
  43.  * @author 陈维东
  44.  * @see 强制竖屏:AndroidManifest中设置Activity的Screen Orientation为portrait
  45.  */
  46. public class C_MusicPlayerActivity extends Activity {
  47.  
  48.         ImageButton left_ImageButton;
  49.         public static ImageButton play_ImageButton;
  50.         ImageButton right_ImageButton;
  51.  
  52.         ListView musicListView;
  53.         GridView musicGridView;
  54.  
  55.         public static Context context;
  56.  
  57.         // 初始化歌词检索值
  58.         public int Index = 0;
  59.  
  60.         // 为后台播放通知创建对象
  61.         public static NotificationManager mNotificationManager;
  62.  
  63.         // 绑定SeekBar和各种属性TextView
  64.         public static SeekBar seekbar;
  65.         public static TextView time_left;
  66.         public static TextView time_right;
  67.         public static TextView music_Name;
  68.         public static LrcView lrc_view;
  69.         public static TextView music_Album;
  70.         public static TextView music_Artist;
  71.         public static ImageView music_AlbumArt;
  72.         public static TextView music_number;
  73.  
  74.         public static RunGif runEql;
  75.  
  76.         // 为倒影创建对象
  77.         public RelativeLayout relativeflac;
  78.         public static ImageView reflaction;
  79.  
  80.         // 为歌曲时间和播放时间定义静态变量
  81.         public static int song_time = 0;
  82.         public static int play_time = 0;
  83.  
  84.         // 为类Music_infoAdapter声明静态变量
  85.         public static Music_infoAdapter music_info;
  86.  
  87.         // 声明两个页面对象
  88.         private BigDragableLuncher bigPage;
  89.         private DragableLuncher smallPage;
  90.  
  91.         // 声明按钮
  92.         private ImageButton[] blind_btn = new ImageButton[3];
  93.         private int[] btn_id = new int[] { R.id.imageButton1, R.id.imageButton2,
  94.                         R.id.imageButton3 };
  95.  
  96.         @Override
  97.         public void onCreate(Bundle savedInstanceState) {
  98.                 super.onCreate(savedInstanceState);
  99.                 setContentView(R.layout.main);
  100.  
  101.                 context = this;
  102.  
  103.                 // 设置布局动画
  104.                 overridePendingTransition(R.anim.zoomin, R.anim.zoomout);
  105.  
  106.                 bigPage = (BigDragableLuncher) findViewById(R.id.all_space);
  107.                 smallPage = (DragableLuncher) findViewById(R.id.space);
  108.  
  109.                 // 绑定GIF动画界面
  110.                 runEql = (RunGif) findViewById(R.id.runGif1);
  111.  
  112.                 // 倒影布局
  113.                 relativeflac = (RelativeLayout) findViewById(R.id.relativelayout1);
  114.                 reflaction = (ImageView) findViewById(R.id.inverted_view);
  115.  
  116.                 // 创建对象获得系统服务
  117.                 mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
  118.  
  119.                 // 绑定歌曲列表界面
  120.                 musicListView = (ListView) findViewById(R.id.listView1);
  121.                 new MusicListView().disPlayList(musicListView, this);
  122.                 // 将获取的歌曲属性放到当前适配器中
  123.                 music_info = new Music_infoAdapter(this);
  124.                 // 绑定专辑列表界面
  125.                 musicGridView = (GridView) findViewById(R.id.gridview1);
  126.                 new MusicSpecialView().disPlaySpecial(musicGridView, this);
  127.  
  128.                 // 监听播放列表点击事件
  129.                 musicListView.setOnItemClickListener(new OnItemClickListener() {
  130.  
  131.                         @Override
  132.                         public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
  133.                                         long arg3) {
  134.                                 // TODO Auto-generated method stub
  135.  
  136.                                 Intent play_1 = new Intent(C_MusicPlayerActivity.this,
  137.                                                 ControlPlay.class);
  138.                                 play_1.putExtra("control", "listClick");
  139.                                 play_1.putExtra("musicId_1", arg2);
  140.                                 startService(play_1);
  141.  
  142.                                 // 点击后动画跳转播放界面
  143.                                 bigPage.setAnimation(AnimationUtils.loadAnimation(
  144.                                                 C_MusicPlayerActivity.this, R.anim.alpha_x));
  145.                                 bigPage.setToScreen(1);
  146.                                 blind_btn[1]
  147.                                                 .setBackgroundResource(R.drawable.big_button_pressed);
  148.                                 blind_btn[0].setBackgroundResource(R.drawable.big_button_style);
  149.                         }
  150.                 });
  151.  
  152.                 // 监听专辑列表点击事件
  153.                 musicGridView.setOnItemClickListener(new OnItemClickListener() {
  154.  
  155.                         @Override
  156.                         public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
  157.                                         long arg3) {
  158.                                 // TODO Auto-generated method stub
  159.  
  160.                                 Intent play_2 = new Intent(C_MusicPlayerActivity.this,
  161.                                                 ControlPlay.class);
  162.                                 play_2.putExtra("control", "gridClick");
  163.                                 play_2.putExtra("musicId_2", arg2);
  164.                                 startService(play_2);
  165.  
  166.                                 // 点击后动画跳转播放界面
  167.                                 bigPage.setAnimation(AnimationUtils.loadAnimation(
  168.                                                 C_MusicPlayerActivity.this, R.anim.alpha_x));
  169.                                 bigPage.setToScreen(1);
  170.                                 blind_btn[1]
  171.                                                 .setBackgroundResource(R.drawable.big_button_pressed);
  172.                                 blind_btn[2].setBackgroundResource(R.drawable.big_button_style);
  173.  
  174.                         }
  175.                 });
  176.  
  177.                 // 小页面允许触摸执行动画
  178.                 smallPage.isOpenTouchAnima(true);
  179.  
  180.                 // 绑定ImageButton
  181.                 for (int k = 0; k < blind_btn.length; k++) {
  182.                         blind_btn[k] = (ImageButton) findViewById(btn_id[k]);
  183.                 }
  184.  
  185.                 // 设置按钮被选中颜色和默认颜色
  186.                 bigPage.setBottomBarBg(blind_btn, Color.GREEN, Color.YELLOW);
  187.  
  188.                 // 判断点击了哪个按钮并执行跳转界面
  189.                 android.view.View.OnClickListener ocl = new View.OnClickListener() {
  190.  
  191.                         @Override
  192.                         public void onClick(View v) {
  193.                                 // TODO Auto-generated method stub
  194.                                 switch (v.getId()) {
  195.                                 case R.id.imageButton1:
  196.                                         bigPage.setAnimation(AnimationUtils.loadAnimation(
  197.                                                         C_MusicPlayerActivity.this, R.anim.alpha_x));
  198.                                         bigPage.setToScreen(0);
  199.                                         v.setPressed(true);
  200.                                         blind_btn[0]
  201.                                                         .setBackgroundResource(R.drawable.big_button_pressed);
  202.                                         blind_btn[1]
  203.                                                         .setBackgroundResource(R.drawable.big_button_style);
  204.                                         blind_btn[2]
  205.                                                         .setBackgroundResource(R.drawable.big_button_style);
  206.                                         break;
  207.                                 case R.id.imageButton2:
  208.                                         bigPage.setAnimation(AnimationUtils.loadAnimation(
  209.                                                         C_MusicPlayerActivity.this, R.anim.alpha_x));
  210.                                         bigPage.setToScreen(1);
  211.                                         v.setPressed(true);
  212.                                         blind_btn[1]
  213.                                                         .setBackgroundResource(R.drawable.big_button_pressed);
  214.                                         blind_btn[0]
  215.                                                         .setBackgroundResource(R.drawable.big_button_style);
  216.                                         blind_btn[2]
  217.                                                         .setBackgroundResource(R.drawable.big_button_style);
  218.                                         break;
  219.                                 case R.id.imageButton3:
  220.                                         bigPage.setAnimation(AnimationUtils.loadAnimation(
  221.                                                         C_MusicPlayerActivity.this, R.anim.alpha_x));
  222.                                         bigPage.setToScreen(2);
  223.                                         v.setPressed(true);
  224.                                         blind_btn[2]
  225.                                                         .setBackgroundResource(R.drawable.big_button_pressed);
  226.                                         blind_btn[1]
  227.                                                         .setBackgroundResource(R.drawable.big_button_style);
  228.                                         blind_btn[0]
  229.                                                         .setBackgroundResource(R.drawable.big_button_style);
  230.                                 }
  231.                         }
  232.                 };
  233.                 // 初始化设置
  234.                 blind_btn[1].setBackgroundResource(R.drawable.big_button_pressed);
  235.                 // 三个按钮分别指定监听器
  236.                 blind_btn[0].setOnClickListener(ocl);
  237.                 blind_btn[1].setOnClickListener(ocl);
  238.                 blind_btn[2].setOnClickListener(ocl);
  239.  
  240.                 // 绑定按钮
  241.                 left_ImageButton = (ImageButton) findViewById(R.id.ib1);
  242.                 play_ImageButton = (ImageButton) findViewById(R.id.ib2);
  243.                 right_ImageButton = (ImageButton) findViewById(R.id.ib3);
  244.  
  245.                 time_left = (TextView) findViewById(R.id.time_tv1);
  246.                 time_right = (TextView) findViewById(R.id.time_tv2);
  247.                 music_Name = (TextView) findViewById(R.id.music_name);
  248.                 music_Album = (TextView) findViewById(R.id.music_album);
  249.                 music_Artist = (TextView) findViewById(R.id.music_artist);
  250.                 seekbar = (SeekBar) findViewById(R.id.player_seekbar);
  251.                 lrc_view = (LrcView) findViewById(R.id.LyricShow);
  252.                 music_AlbumArt = (ImageView) findViewById(R.id.music_AlbumArt);
  253.                 music_number = (TextView) findViewById(R.id.music_number);
  254.  
  255.                 // 判断歌曲不能为空并且后缀为.mp3
  256.                 if (music_info.getCount() > 0
  257.                                 && Music_infoAdapter.musicList.get(ControlPlay.playing_id)
  258.                                                 .getMusicName().endsWith(".mp3")) {
  259.                         // 显示获取的歌曲时间
  260.                         time_right.setText(Music_infoAdapter
  261.                                         .toTime(Music_infoAdapter.musicList.get(
  262.                                                         ControlPlay.playing_id).getMusicTime()));
  263.                         // 截取.mp3字符串
  264.                         String a = Music_infoAdapter.musicList.get(ControlPlay.playing_id)
  265.                                         .getMusicName();
  266.                         int b = a.indexOf(".mp3");
  267.                         String c = a.substring(0, b);
  268.                         // 显示获取的歌曲名
  269.                         music_Name.setText(c);
  270.                         music_Name.setAnimation(AnimationUtils.loadAnimation(
  271.                                         C_MusicPlayerActivity.this, R.anim.translate_z));
  272.  
  273.                         // 显示播放当前第几首和歌曲总数
  274.                         int x = ControlPlay.playing_id + 1;
  275.                         music_number.setText("" + x + "/"
  276.                                         + Music_infoAdapter.musicList.size());
  277.  
  278.                         // 显示获取的艺术家
  279.                         music_Artist.setText(Music_infoAdapter.musicList.get(
  280.                                         ControlPlay.playing_id).getMusicSinger());
  281.                         // 获取专辑图片路径
  282.                         String url = C_MusicPlayerActivity.music_info
  283.                                         .getAlbumArt(Music_infoAdapter.musicList.get(
  284.                                                         ControlPlay.playing_id).get_id());
  285.                         if (url != null) {
  286.                                 // 显示获取的专辑图片
  287.                                 music_AlbumArt.setImageURI(Uri.parse(url));
  288.                                 music_AlbumArt.setAnimation(AnimationUtils.loadAnimation(
  289.                                                 context, R.anim.alpha_z));
  290.  
  291.                                 try {
  292.                                         /* 为倒影创建位图 */
  293.                                         Bitmap mBitmap = BitmapFactory.decodeFile(url);
  294.                                         reflaction.setImageBitmap(createReflectedImage(mBitmap));
  295.                                         reflaction.setAnimation(AnimationUtils.loadAnimation(
  296.                                                         context, R.anim.alpha_z));
  297.                                 } catch (Exception e) {
  298.                                         // TODO Auto-generated catch block
  299.                                         e.printStackTrace();
  300.                                 }
  301.  
  302.                         } else {
  303.                                 music_AlbumArt.setImageResource(R.drawable.album);
  304.                                 music_AlbumArt.setAnimation(AnimationUtils.loadAnimation(
  305.                                                 context, R.anim.alpha_z));
  306.  
  307.                                 try {
  308.                                         /* 为倒影创建位图 */
  309.                                         Bitmap mBitmap = ((BitmapDrawable) getResources()
  310.                                                         .getDrawable(R.drawable.album)).getBitmap();
  311.                                         reflaction.setImageBitmap(createReflectedImage(mBitmap));
  312.                                         reflaction.setAnimation(AnimationUtils.loadAnimation(
  313.                                                         context, R.anim.alpha_z));
  314.                                 } catch (Exception e) {
  315.                                         // TODO Auto-generated catch block
  316.                                         e.printStackTrace();
  317.                                 }
  318.                         }
  319.  
  320.                 } else {
  321.                         Toast.makeText(C_MusicPlayerActivity.this, "手机里木有找到歌曲哦!",
  322.                                         Toast.LENGTH_LONG).show();
  323.                 }
  324.  
  325.                 /**
  326.                  * 监听拖动SeekBar事件
  327.                  */
  328.                 seekbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
  329.  
  330.                         @Override
  331.                         public void onStopTrackingTouch(SeekBar seekBar) {
  332.                                 // TODO Auto-generated method stub
  333.  
  334.                         }
  335.  
  336.                         @Override
  337.                         public void onStartTrackingTouch(SeekBar seekBar) {
  338.                                 // TODO Auto-generated method stub
  339.  
  340.                         }
  341.  
  342.                         @Override
  343.                         public void onProgressChanged(SeekBar seekBar, int progress,
  344.                                         boolean fromUser) {
  345.                                 // TODO Auto-generated method stub
  346.  
  347.                                 // 判断用户是否触拖SeekBar并且不为空才执行
  348.                                 if (fromUser && ControlPlay.myMediaPlayer != null) {
  349.                                         ControlPlay.myMediaPlayer.seekTo(progress);
  350.                                 }
  351.                                 time_left.setText(Music_infoAdapter.toTime(progress));
  352.                         }
  353.                 });
  354.  
  355.                 /**
  356.                  * 监听“上一首”并实现功能
  357.                  */
  358.                 left_ImageButton.setOnClickListener(new ImageButton.OnClickListener() {
  359.  
  360.                         @Override
  361.                         public void onClick(View v) {
  362.                                 // TODO Auto-generated method stub
  363.  
  364.                                 Intent play_left = new Intent(C_MusicPlayerActivity.this,
  365.                                                 ControlPlay.class);
  366.                                 play_left.putExtra("control", "front");
  367.                                 startService(play_left);
  368.                         }
  369.                 });
  370.  
  371.                 /**
  372.                  * 监听“播放”并实现功能
  373.                  */
  374.                 play_ImageButton.setOnClickListener(new ImageButton.OnClickListener() {
  375.  
  376.                         @Override
  377.                         public void onClick(View v) {
  378.                                 // TODO Auto-generated method stub
  379.  
  380.                                 Intent play_center = new Intent(C_MusicPlayerActivity.this,
  381.                                                 ControlPlay.class);
  382.                                 play_center.putExtra("control", "play");
  383.                                 startService(play_center);
  384.                         }
  385.  
  386.                 });
  387.  
  388.                 /**
  389.                  * 监听“下一首”并实现功能
  390.                  */
  391.                 right_ImageButton.setOnClickListener(new ImageButton.OnClickListener() {
  392.  
  393.                         @Override
  394.                         public void onClick(View v) {
  395.                                 // TODO Auto-generated method stub
  396.  
  397.                                 Intent play_right = new Intent(C_MusicPlayerActivity.this,
  398.                                                 ControlPlay.class);
  399.                                 play_right.putExtra("control", "next");
  400.                                 startService(play_right);
  401.                         }
  402.                 });
  403.  
  404.         }
  405.  
  406.         /**
  407.          * 倒影的实现方法
  408.          *
  409.          * @param originalBitmap
  410.          * @return
  411.          */
  412.         static Bitmap createReflectedImage(Bitmap originalBitmap) {
  413.                 // TODO Auto-generated method stub
  414.  
  415.                 // 图片与倒影间隔距离
  416.                 final int reflectionGap = 4;
  417.                 // 图片的宽度
  418.                 int width = originalBitmap.getWidth();
  419.                 // 图片的高度
  420.                 int height = originalBitmap.getHeight();
  421.  
  422.                 Matrix matrix = new Matrix();
  423.                 // 图片缩放,x轴变为原来的1倍,y轴为-1倍,实现图片的反转
  424.                 matrix.preScale(1, -1);
  425.                 // 创建反转后的图片Bitmap对象,图片高是原图的一半。
  426.                 Bitmap reflectionBitmap = Bitmap.createBitmap(originalBitmap, 0,
  427.                                 height / 2, width, height / 2, matrix, false);
  428.                 // 创建标准的Bitmap对象,宽和原图一致,高是原图的1.5倍。
  429.                 Bitmap withReflectionBitmap = Bitmap.createBitmap(width, (height
  430.                                 + height / 2 + reflectionGap), Config.ARGB_8888);
  431.  
  432.                 // 构造函数传入Bitmap对象,为了在图片上画图
  433.                 Canvas canvas = new Canvas(withReflectionBitmap);
  434.                 // 画原始图片
  435.                 canvas.drawBitmap(originalBitmap, 0, 0, null);
  436.  
  437.                 // 画间隔矩形
  438.                 Paint defaultPaint = new Paint();
  439.                 canvas.drawRect(0, height, width, height + reflectionGap, defaultPaint);
  440.  
  441.                 // 画倒影图片
  442.                 canvas.drawBitmap(reflectionBitmap, 0, height + reflectionGap, null);
  443.  
  444.                 // 实现倒影效果
  445.                 Paint paint = new Paint();
  446.                 LinearGradient shader = new LinearGradient(0,
  447.                                 originalBitmap.getHeight(), 0,
  448.                                 withReflectionBitmap.getHeight(), 0x70ffffff, 0x00ffffff,
  449.                                 TileMode.MIRROR);
  450.                 paint.setShader(shader);
  451.                 paint.setXfermode(new PorterDuffXfermode(Mode.DST_IN));
  452.  
  453.                 // 覆盖效果
  454.                 canvas.drawRect(0, height, width, withReflectionBitmap.getHeight(),
  455.                                 paint);
  456.  
  457.                 return withReflectionBitmap;
  458.         }
  459.  
  460.         /**
  461.          * 按下“返回键”后提示用户是否退出程序
  462.          */
  463.         @Override
  464.         public boolean onKeyDown(int keyCode, KeyEvent event) {
  465.                 // TODO Auto-generated method stub
  466.  
  467.                 if (keyCode == KeyEvent.KEYCODE_BACK) {
  468.  
  469.                         Dialog dialog = new MyDialog(C_MusicPlayerActivity.this,
  470.                                         R.style.MyDialog);
  471.                         // 设置触摸对话框以外的地方取消对话框
  472.                         dialog.setCanceledOnTouchOutside(true);
  473.                         dialog.show();
  474.                 }
  475.                 return super.onKeyDown(keyCode, event);
  476.         }
  477.  
  478.         /**
  479.          * 后台提示播放通知的方法
  480.          * 需要在AndroidManifest的C_MusicPlayerActivity中添加android:launchMode=
  481.          * "singleTop"才可以完全退出
  482.          *
  483.          * @param tickerText
  484.          *            传入的歌曲名
  485.          * @param title
  486.          * @param content
  487.          * @param drawable
  488.          *            图片路径
  489.          */
  490.         public static void setNotice(String tickerText, String title,
  491.                         String content, int drawable) {
  492.                 // 创建一个通知对象,传入相应的参数
  493.                 Notification notification = new Notification(drawable, tickerText,
  494.                                 System.currentTimeMillis());
  495.                 // 设置通知不能被清除
  496.                 notification.flags = Notification.FLAG_NO_CLEAR;
  497.                 // 封装的Intent跳转,由系统来决定什么时候启动跳转Intent
  498.                 PendingIntent contentIntent = PendingIntent.getActivity(context, 0,
  499.                                 new Intent(context, C_MusicPlayerActivity.class), 0);
  500.                 // notification.setLatestEventInfo(this, "通知标题","通知内容", intent);
  501.                 notification.setLatestEventInfo(context, title, content, contentIntent);
  502.                 // 发送通知,代码应该放到最后,否则会报错,显示的Notification都有一个唯一的ID是1
  503.                 mNotificationManager.notify(1, notification);
  504.         }
  505.  
  506.         /**
  507.          * 自定义对话框的类
  508.          */
  509.         class MyDialog extends Dialog {
  510.  
  511.                 Context context;
  512.  
  513.                 public MyDialog(Context context) {
  514.                         super(context);
  515.                         // TODO Auto-generated constructor stub
  516.                         this.context = context;
  517.                 }
  518.  
  519.                 public MyDialog(Context context, int theme) {
  520.                         super(context, theme);
  521.                         // TODO Auto-generated constructor stub
  522.                         this.context = context;
  523.                 }
  524.  
  525.                 @Override
  526.                 protected void onCreate(Bundle savedInstanceState) {
  527.                         // TODO Auto-generated method stub
  528.                         super.onCreate(savedInstanceState);
  529.                         this.setContentView(R.layout.dialog);
  530.  
  531.                         Button about_button, exit_button, return_button;
  532.  
  533.                         about_button = (Button) findViewById(R.id.about_button1);
  534.                         exit_button = (Button) findViewById(R.id.exit_button2);
  535.                         return_button = (Button) findViewById(R.id.return_button3);
  536.  
  537.                         // 弹出关于
  538.                         about_button.setOnClickListener(new View.OnClickListener() {
  539.  
  540.                                 @Override
  541.                                 public void onClick(View v) {
  542.                                         // TODO Auto-generated method stub
  543.  
  544.                                         Intent in = new Intent(C_MusicPlayerActivity.this,
  545.                                                         AboutActivity.class);
  546.                                         startActivity(in);
  547.                                         dismiss();
  548.                                 }
  549.                         });
  550.  
  551.                         // 结束服务退出应用程序
  552.                         exit_button.setOnClickListener(new View.OnClickListener() {
  553.  
  554.                                 @Override
  555.                                 public void onClick(View v) {
  556.                                         // TODO Auto-generated method stub
  557.  
  558.                                         stopService(new Intent(C_MusicPlayerActivity.this,
  559.                                                         ControlPlay.class));
  560.                                         mNotificationManager.cancel(1);
  561.                                         System.exit(0);
  562.                                 }
  563.                         });
  564.  
  565.                         // 返回
  566.                         return_button.setOnClickListener(new View.OnClickListener() {
  567.  
  568.                                 @Override
  569.                                 public void onClick(View v) {
  570.                                         // TODO Auto-generated method stub
  571.  
  572.                                         dismiss();
  573.                                 }
  574.                         });
  575.                 }
  576.         }
  577.  
  578. }
  579.  
downloadC_MusicPlayerActivity.java Source code - Download The Android source code for beginners music player design and source code Source code
Related Source Codes/Software:
The Android source code to use baidu weather love weather program source code - What's the weather like in this project is an andr... 2016-12-31
Textview perfect display HTML code - Textview perfect display HTML code, including cust... 2016-12-31
Eliminate to bring Android game source code list diamond little game - This project is a based on android AndEngine open ... 2016-12-31
Fast sliding Android example source code letters index and prompt contact list - A simple fast sliding contact list and initials pr... 2016-12-31
The Android source Jane. Beautiful music player development program source code - This project is an open source music player progra... 2016-12-31
skeuocard - Skeuocard progressively enhances credit card input... 2016-12-31
hubot-scripts - DEPRECATED, see https://github.com/github/hubot-sc... 2016-12-31
Jcrop - Jcrop (official) - Image Cropping Plugin for jQuer... 2016-12-31
volt - A Ruby web framework where your Ruby runs on both ... 2016-12-31
touchstonejs - Mobile App Framework powered by React ... 2016-12-31
CRYENGINE - CRYENGINE is a powerful real-time game development... 2017-06-11
postal - 2017-06-11
reactide - Reactide is the first dedicated IDE for React web ... 2017-06-11
rkt - rkt is a pod-native container engine for Linux. It... 2017-06-11
uWebSockets - Tiny WebSockets https://for... 2017-06-11
realworld - TodoMVC for the RealWorld - Exemplary fullstack Me... 2017-06-11
goreplay - GoReplay is an open-source tool for capturing and ... 2017-06-10
pyenv - Simple Python version management 2017-06-10
redux-saga - An alternative side effect model for Redux apps ... 2017-06-10
angular-starter - 2017-06-10

 Back to top