先說一個關於製作畫線的版的問題,
畫線版,首先你想到的肯定是一個動態的,因爲起點終點不固定,動態的佈局就要View,新建一個類,繼承View類,要用到,起點,終點座標,還有就onTouchEvent
用來監聽你的手的動作。之後,還要刷新畫板。
代碼如下
package com.example.androidmedia;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.view.MotionEvent;
import android.view.View;
public class Huaxian extends View {
private float x0, y0;//起點
private float x1, y1;//終點
public Huaxian(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
@Override
protected void onDraw(Canvas canvas) {
Paint p = new Paint();//畫筆
canvas.drawLine(x0, y0, x1, y1, p);
super.onDraw(canvas);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x0=event.getX();
y0=event.getY();
break;
case MotionEvent.ACTION_MOVE:
x1=event.getX();
y1=event.getY();
break;
case MotionEvent.ACTION_UP:
x1=event.getX();
y1=event.getY();
break;
default:
break;
}
invalidate();//刷新
return true;
}
}
mediaplay的播放音樂
package com.example.androidmedia;
<span style="font-size:18px;">
import java.io.IOException;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
public class MusicActivity extends Activity {
private Button id;
private MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_music);
id = (Button) findViewById(R.id.bt_pause);
mp = new MediaPlayer();//新建Mediaplay
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_music, menu);
return true;
}
public void click(View v) {
switch (v.getId()) {
case R.id.bt_start:
mp.reset();//
try {
mp.setDataSource("/mnt/sdcard/music.mp3");//鏈接文件庫,方法多種,
mp.prepare();
mp.start();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.bt_pause:
if (mp != null) {
if (mp.isPlaying()) {
mp.pause();
id.setText("繼續");
} else {
mp.start();
id.setText("暫停");
}
}
break;
case R.id.bt_stop:
if (mp != null) {
mp.stop();
mp.release();
this.finish();
}
break;
case R.id.bt_restart:
if (mp != null) {
mp.stop();
try {
mp.prepare();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mp.seekTo(0);//從頭開始播放
mp.start();
}
break;
default:
break;
}
}
}
</span>
mediaplay要遵守其生命週期圖的運行過程,來調用某個方法
媒體的播放與此差不多,只要添加一個SurfaceView。