简易MP3播放器
public class MainActivity extends Activity implements OnSeekBarChangeListener, OnTouchListener {
private SurfaceView mSV;
private MediaPlayer mMediaPlayer;
private SeekBar mSb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
mSV = (SurfaceView)findViewById(R.id.sv);
mSV.setOnTouchListener(this);
mSb = (SeekBar)findViewById(R.id.sb);
mSb.setOnSeekBarChangeListener(this);
mSb.setVisibility(View.GONE);
SurfaceHolder holder = mSV.getHolder();
holder.addCallback(new Callback() {
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setDataSource(getMp3FilePath());
mMediaPlayer.setDisplay(holder);
mMediaPlayer.prepare();
mMediaPlayer.start();
mSb.setMax(mMediaPlayer.getDuration());
new Timer().schedule(new TimerTask() {
@Override
public void run() {
mSb.setProgress(mMediaPlayer.getCurrentPosition());
}
}, 500, 500);
} catch (Exception e) {
}
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
});
}
private String getMp3FilePath(){
File file = new File(getFilesDir(),"oppo.3gp");
return file.getAbsolutePath();
}
public void play(View v){
}
@Override
public void onProgressChanged(SeekBar seekBar, int progress,
boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
mMediaPlayer.seekTo(mSb.getProgress());
}
@Override
public boolean onTouch(View v, MotionEvent event) {
mSb.setVisibility(View.VISIBLE);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
runOnUiThread(new Runnable() {
public void run() {
mSb.setVisibility(View.GONE);
}
});
}
}, 3000);
return false;
}
}
使用本地相机进行拍照
public class MainActivity extends Activity {
private ImageView mIv;
private int TakePhotoCode=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mIv=(ImageView) findViewById(R.id.iv);
}
public void takephoto(View v){
Log.v("meeeeeee", "开始拍照");
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, TakePhotoCode);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==TakePhotoCode) {
if (resultCode==RESULT_OK) {
Bundle bundle = data.getExtras();
Bitmap photo= bundle.getParcelable("data");
mIv.setImageBitmap(photo);
}
else if (resultCode==RESULT_CANCELED) {
Log.v("meeeeeee", "点击返回");
}
}
}
}
保存照片至本地
File file;
public void takephoto(View v) {
String state = Environment.getExternalStorageState();
if (!state.equals(Environment.MEDIA_MOUNTED)) {
Toast.makeText(MainActivity.this, "没找到sd卡", 0).show();
}else {
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());
String str = formatter.format(curDate);
file = new File(Environment.getExternalStorageDirectory(), str+".jpg");
if (!file.exists()) {
try {
file.createNewFile();
} catch (IOException e) {
}
}
Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
Uri uri = Uri.fromFile(file);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
startActivityForResult(intent, TakePhotoCode);
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode==TakePhotoCode) {
if (resultCode==RESULT_OK) {
Bitmap bmp = BitmapFactory.decodeFile(file.getAbsolutePath());
mIv.setImageBitmap(bmp);
Toast.makeText(MainActivity.this, "已保存至:"+file.getAbsolutePath(), 0).show();
return;
}
else if (resultCode==RESULT_CANCELED) {
Log.v("meeeeeee", "点击返回");
}
}
}
public boolean judgeSDCardExist(){
String state = Environment.getExternalStorageState();
if (state.equals(Environment.MEDIA_MOUNTED)) {
return true;
}
return false;
}
简单的格式化
SimpleDateFormat formatter = new SimpleDateFormat ("yyyy年MM月dd日 HH:mm:ss");
Date curDate = new Date(System.currentTimeMillis());
String str = formatter.format(curDate);
打开本地相册
public void photos(View v){
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, GET_PHOTOS);
}
/**
* 3.获取目标的data的uri对象
* Uri/data.getData();
* */
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == GET_PHOTOS && resultCode == RESULT_OK) {
Uri uri = data.getData();
if (uri != null) {
try {
Bitmap bmp = Media.getBitmap(getContentResolver(), uri);
mIv.setImageBitmap(bmp);
} catch (Exception e) {
Toast.makeText(MainActivity.this, "有异常", 0).show();
}
} else {
Bundle bundle = data.getExtras();
if (bundle != null) {
Bitmap bmp = bundle.getParcelable("data");
mIv.setImageBitmap(bmp);
}
}
}
}