日报2015/11/24(第一行代码读书笔记)
来源:互联网 发布:linux创建多个定时器 编辑:程序博客网 时间:2024/06/05 09:52
利用GET_CONTENT调用系统图片并裁剪
只是在昨天的例子里面加了一个按钮而已,不过这里的话,图片选取要选小一点的,反正好多图都没法用。
btnChoose.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { File photo = new File(Environment.getExternalStorageDirectory(), "tempImage.jpg"); if (photo.exists()) { photo.delete(); } try { photo.createNewFile(); } catch (IOException e) { e.printStackTrace(); } /* bug0001: before:Uri imageUri = Uri.fromFile(photo); 这里应该用全局变量imageUri */ imageUri = Uri.fromFile(photo); //调用系统任务 Intent intent = new Intent(Intent.ACTION_GET_CONTENT); intent.setType("image/*"); /* bug0002: before:intent.putExtra("crop", true); 这里应该用字符串的true 并且选择的图片要小,300、400kb的样子吧 */ intent.putExtra("crop", "true"); intent.putExtra("scale", true); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); //这里复用了代码,选择完图片直接进入显示图片的逻辑 startActivityForResult(intent, SHOW_PHOTO); } });
简单的音乐播放器
播放的是sd卡根目录的winter.mp3
package com.jackie.musicplayer;import android.media.MediaPlayer;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import java.io.File;import java.io.IOException;public class MainActivity extends AppCompatActivity implements View.OnClickListener { MediaPlayer mPlayer = new MediaPlayer(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnStart).setOnClickListener(this); findViewById(R.id.btnPause).setOnClickListener(this); findViewById(R.id.btnStop).setOnClickListener(this); initMediaPlayer(); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnStart: if (!mPlayer.isPlaying()) { mPlayer.start(); } break; case R.id.btnPause: if (mPlayer.isPlaying()) { mPlayer.pause(); } break; case R.id.btnStop: if (mPlayer.isPlaying()) { //如果用了stop,那么这个MediaPlayer就不能再播放音乐了 mPlayer.reset(); initMediaPlayer(); } break; } } @Override protected void onDestroy() { super.onDestroy(); if (mPlayer != null) { //弃用播放器 mPlayer.stop(); //释放资源 mPlayer.release(); } } private void initMediaPlayer() { //初始化MediaPlayer /* bug0001: java.io.FileNotFoundException: /storage/emulated/0/winter.mp3: open failed: EACCES (Permission denied) 不用说了,忘记给权限了,读取SDcard的权限 */ File file = new File(Environment.getExternalStorageDirectory(), "winter.mp3"); try { //指定播放源 mPlayer.setDataSource(file.getPath()); //准备播放 mPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); } }}
简单的视频播放器
播放指定路径(sd卡根目录下video.mp4)文件,VideoView既是一个控件,又是一个类似MediaPlayer的类,可以播放视频文件
package com.jackie.videoplayer;import android.os.Environment;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.VideoView;import java.io.File;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private VideoView mPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); findViewById(R.id.btnPlay).setOnClickListener(this); findViewById(R.id.btnPause).setOnClickListener(this); findViewById(R.id.btnReplay).setOnClickListener(this); mPlayer = (VideoView) findViewById(R.id.videoView); File file = new File(Environment.getExternalStorageDirectory(), "video.mp4"); mPlayer.setVideoPath(file.getPath()); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btnPlay: if (!mPlayer.isPlaying()) { mPlayer.start(); } break; case R.id.btnPause: if (mPlayer.isPlaying()) { mPlayer.pause(); } break; case R.id.btnReplay: if (mPlayer.isPlaying()) { //如果当前视频正在播放,重新播放 mPlayer.resume(); } break; } }}
0 0
- 日报2015/11/24(第一行代码读书笔记)
- 日报2015/11/11(第一行代码读书笔记)
- 日报2015/11/12(第一行代码读书笔记)
- 日报2015/11/10(第一行代码读书笔记)
- 日报2015/11/17(第一行代码读书笔记)
- 日报2015/11/23(第一行代码读书笔记)
- 日报2015/11/26(第一行代码读书笔记)
- 日报2015/10/19(第一行代码读书笔记)
- 《第一行代码》读书笔记
- 第一行代码读书笔记
- 《第一行代码》读书笔记
- 《第一行代码Android》读书笔记
- 第一行代码 读书笔记 2
- Android第一行代码读书笔记
- 第一行代码读书笔记1
- 第一行代码读书笔记2
- 《第一行代码Android》---读书笔记
- 第一行代码 读书笔记 第1章
- 我看Java虚拟机(2)---Java虚拟机内存区域详解
- SQL 序号列ROW_NUMBER,RANK,DENSE_RANK、NTILE
- LintCode:最小子串覆盖
- 判断是否存在拓扑结构相同的子树(C++版)
- Android中无法获取EditText中输入的值
- 日报2015/11/24(第一行代码读书笔记)
- Linux 网络select模型
- Java基础——Java笔记--内部类
- java 集合 实现comparable接口
- centos6.4安装ftp服务軟件vsftpd
- LintCode:最小差
- 朝花夕拾之--大数据平台CDH集群离线搭建
- c#中的DBNull和Null
- Java NIO 读取文件、写入文件、读取写入混合