部分學習(android)

loginjava

public class login extends Activity {
    ImageView iv3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.login);
        iv3=(ImageView) findViewById(R.id.iv3);
        iv3.setOnClickListener(new OnClickListener() {            
            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent();
                intent.setClass(login.this,
                        com.anhui.music_player.view.register.class);               
                startActivity(intent);            }        });    }}

login.xmlandroid

<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"
     android:orientation="vertical" 
    tools:context=".MainActivity" >
    <LinearLayout       
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"       
        android:orientation="horizontal" >  
   <TextView
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_gravity="center_horizontal"
        android:text="用戶登錄"
        android:textColor="#ffffff"
        android:background="#3399ff"
        android:textSize="25sp"
        android:gravity="center"         />  
</LinearLayout>
  <LinearLayout       
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"  
        android:paddingTop="35dp"     
        android:orientation="vertical" >
    <EditText
            android:layout_width="fill_parent"
            android:layout_height="50dp"
            android:hint="用戶名"           />    
</LinearLayout>
  <LinearLayout       
        android:layout_width="fill_parent"
        android:layout_height="50dp"       
        android:orientation="vertical" >
    <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="密碼"
            android:paddingTop="15dp"           />    
</LinearLayout>  
   <ImageView 
        android:id="@+id/iv2" 
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:src="@drawable/login"
      android:layout_marginTop="30dp"
        android:onClick="doClick"         />
   <ImageView 
        android:id="@+id/iv3" 
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:src="@drawable/register"
        android:layout_marginTop="12dp"
        android:onClick="doClick"         />
   <TextView 
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:text="使用第三方登陸:"
         android:layout_marginTop="30dp"
        android:textSize="25sp"       />
    <LinearLayout       
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
         android:paddingTop="22dp"      
        android:orientation="horizontal" >
    <ImageView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/login1"          />
    <ImageView 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:src="@drawable/login2"         />        
</LinearLayout></LinearLayout>

PlayerServicedom

public class PlayerService extends Service {  
    private MediaPlayer mediaPlayer; // 媒體播放器對象  
    private String path;            // 音樂文件路徑  
    private boolean isPause;        // 暫停狀態  
    private int current = 0;        // 記錄當前正在播放的音樂  
    private List<Music> mp3Infos;   //存放Mp3Info對象的集合  
    private int status = 3;         //播放狀態,默認爲順序播放  
    private MyReceiver myReceiver;  //自定義廣播接收器  
    private int currentTime;        //當前播放進度  
    private int duration;           //播放長度  
    public static final String UPDATE_ACTION = "com.wwj.action.UPDATE_ACTION";  //更新動做  
    public static final String CTL_ACTION = "com.wwj.action.CTL_ACTION";        //控制動做  
    public static final String MUSIC_CURRENT = "com.wwj.action.MUSIC_CURRENT";  //當前音樂播放時間更新動做  
    public static final String MUSIC_DURATION = "com.wwj.action.MUSIC_DURATION";//新音樂長度更新動做  
    private Handler handler = new Handler() {  
        public void handleMessage(android.os.Message msg) {  
            if (msg.what == 1) {  
                if(mediaPlayer != null) {  
                    currentTime = mediaPlayer.getCurrentPosition(); // 獲取當前音樂播放的位置  
                    Intent intent = new Intent();  
                    intent.setAction(MUSIC_CURRENT);  
                    intent.putExtra("currentTime", currentTime);  
                    sendBroadcast(intent); // 給PlayerActivity發送廣播  
                    handler.sendEmptyMessageDelayed(1, 1000);  
                }                                }          };      };  
    @Override  
    public void onCreate() {  
        super.onCreate();  
        Log.d("service", "service created");  
        mediaPlayer = new MediaPlayer();  
        mp3Infos =MusicList.getMusicData(this);   
        mediaPlayer.setOnCompletionListener(new OnCompletionListener() {    
            @Override  
            public void onCompletion(MediaPlayer mp1) {  
                if (status == 1) { // 單曲循環  
                    mediaPlayer.start();  
                } 
                else if (status == 2) { // 所有循環  
                    current++;  
                    if(current > mp3Infos.size() - 1) {  //變爲第一首的位置繼續播放  
                        current = 0;  
                    }               
                } else if (status == 3) { // 順序播放  
                    current++;  //下一首位置  
                    if (current <= mp3Infos.size() - 1) {  
                        Intent sendIntent = new Intent(UPDATE_ACTION);  
                        sendIntent.putExtra("current", current);  
                        sendBroadcast(sendIntent);  
                        path = mp3Infos.get(current).getUrl();  
                        play(0);  
                    }else {  
                        mediaPlayer.seekTo(0);  
                        current = 0;  
                        Intent sendIntent = new Intent(UPDATE_ACTION);  
                        sendIntent.putExtra("current", current);  
                        sendBroadcast(sendIntent);  
                    }  
                } else if(status == 4) {    //隨機播放  
                    current = getRandomIndex(mp3Infos.size() - 1);  
                    System.out.println("currentIndex ->" + current);  
                    Intent sendIntent = new Intent(UPDATE_ACTION);  
                    sendIntent.putExtra("current", current);   
                    sendBroadcast(sendIntent);  
                    path = mp3Infos.get(current).getUrl();  
                    play(0);                  }              }          });   
        myReceiver = new MyReceiver();  
        IntentFilter filter = new IntentFilter();
        registerReceiver(myReceiver, filter);      }  
    protected int getRandomIndex(int end) {  
        int index = (int) (Math.random() * end);  
        return index;      }  
    @Override  
    public IBinder onBind(Intent arg0) {  
        return null;      }  
    private void play(int currentTime) {  
        try {  
            mediaPlayer.reset();// 把各項參數恢復到初始狀態  
            mediaPlayer.setDataSource(path);  
            mediaPlayer.prepare(); // 進行緩衝  
            mediaPlayer.setOnPreparedListener(new PreparedListener(currentTime));// 註冊一個監聽器  
            handler.sendEmptyMessage(1);  
        } catch (Exception e) {  
            e.printStackTrace();          }      }  
    private void pause() {  
        if (mediaPlayer != null && mediaPlayer.isPlaying()) {  
            mediaPlayer.pause();  
            isPause = true;          }      }    
    private void resume() {          if (isPause) {  
            mediaPlayer.start();  
            isPause = false;          }      }  
    private void previous() {  
        Intent sendIntent = new Intent(UPDATE_ACTION);  
        sendIntent.putExtra("current", current); 
        sendBroadcast(sendIntent);  
        play(0);  
    }   
    private void next() {  
        Intent sendIntent = new Intent(UPDATE_ACTION);  
        sendIntent.putExtra("current", current);
        sendBroadcast(sendIntent);  
        play(0);      }  
    private void stop() {  
        if (mediaPlayer != null) {  
            mediaPlayer.stop();  
            try {  
                mediaPlayer.prepare(); // 在調用stop後若是須要再次經過start進行播放,須要以前調用prepare函數  
            } catch (Exception e) {  
                e.printStackTrace();              }          }      }   
    @Override  
    public void onDestroy() {  
        if (mediaPlayer != null) {  
            mediaPlayer.stop();  
            mediaPlayer.release();  
            mediaPlayer = null;          }                }  
    private final class PreparedListener implements OnPreparedListener {  
        private int currentTime;  
  
        public PreparedListener(int currentTime) {  
            this.currentTime = currentTime;         }    
        @Override  
        public void onPrepared(MediaPlayer mp) {  
            mediaPlayer.start(); // 開始播放  
            if (currentTime > 0) { // 若是音樂不是從頭播放  
                mediaPlayer.seekTo(currentTime);              }  
            Intent intent = new Intent();  
            intent.setAction(MUSIC_DURATION);  
            duration = mediaPlayer.getDuration();  
            intent.putExtra("duration", duration);  //經過Intent來傳遞歌曲的總長度  
            sendBroadcast(intent);          }      }    
    public class MyReceiver extends BroadcastReceiver {  
  
        @Override  
        public void onReceive(Context context, Intent intent) {  
            int control = intent.getIntExtra("control", -1);  
            switch (control) {  
            case 1:                  status = 1; // 將播放狀態置爲1表示:單曲循環                  break;  
            case 2:                  status = 2; //將播放狀態置爲2表示:所有循環                  break;  
            case 3:                  status = 3; //將播放狀態置爲3表示:順序播放                  break;  
            case 4:                  status = 4; //將播放狀態置爲4表示:隨機播放                  break;              }          }      }   }
相關文章
相關標籤/搜索