MainActivity
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去除標題
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);
}
Intent intent=new Intent();
switch (view.getId()){
case R.id.button:
//跳轉到拍照界面
intent.setClass(this,paizhao.class);
break;
case R.id.button2:
//跳轉到音樂播放界面
intent.setClass(this,yinyue.class);
break;
}
startActivity(intent);
}
}
private ImageView iv;
//拍的照片要存儲的路徑
private String path ;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//去除標題
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_paizhao);
iv = (ImageView) findViewById(R.id.iv);
//路徑
path = getExternalCacheDir().getAbsolutePath()+ File.separator+"157aa.png";
}
//按鈕的點擊事件
Intent intent2 = new Intent();
intent2.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
//向意圖對象當中傳入指定的路勁
intent2.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(path)));
startActivityForResult(intent2,200);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode==200&resultCode==Activity.RESULT_OK){
//因爲存儲的圖片過大,導致ImageView不能夠顯示出來,此時需要對於圖片進行處理。
//圖片二次採樣
//1.獲得用來設置圖片屬性的參數
BitmapFactory.Options options = new BitmapFactory.Options();
//2.解碼邊緣
options.inJustDecodeBounds = true;
//3.對於圖片進行編碼的操作
BitmapFactory.decodeFile(path,options);
//4.獲得原來圖片的寬度和高度
int outHeight = options.outHeight;
int outWidth = options.outWidth;
//5.得到壓縮的比例 200,200
int sampleHeight = outHeight/200;
int sampleWidth = outWidth/200;
//6.獲取較大的壓縮比例
int size = Math.max(sampleHeight,sampleWidth);
//7.設置圖片縮放的比例
options.inSampleSize = size;
//8.壓縮圖片的質量
options.inPreferredConfig = Bitmap.Config.RGB_565;
//9.鎖定邊緣
options.inJustDecodeBounds = false;
Bitmap bitmap = BitmapFactory.decodeFile(path,options);
iv.setImageBitmap(bitmap);
}
}
}
private ListView musicLV;
private TextView musicnameTv;
private TextView musicsingerTv;
private List<MusicInfo>mDatas;
MusicAdapter adapter ;
ImageView iv1,iv2,iv3;
int count=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
supportRequestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_yinyue);
//初始化控件的方法
initView();
//加載本地音樂數據的方法
loadMusicData();
//初始化多媒體音樂播放器
mediaPlayer = new MediaPlayer();
//設置點擊監聽事件
musicLV.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
MusicInfo info = mDatas.get(position);
musicnameTv.setText(info.getMusicName());
musicsingerTv.setText(info.getMusicSinger());
//如果正在播放其他音樂,就停止正在播放的音樂
stopMusic();
//開始播放當前位置的音樂
mediaPlayer.reset();
count=position;
});
}
private void initView() {
musicLV = (ListView) findViewById(R.id.listView);
musicnameTv = (TextView) findViewById(R.id.music_name);
musicsingerTv = (TextView) findViewById(R.id.music_singer);
iv1= (ImageView) findViewById(R.id.iv1);
iv2= (ImageView) findViewById(R.id.iv2);
iv3= (ImageView) findViewById(R.id.iv3);
adapter = new MusicAdapter(this, mDatas);
musicLV.setAdapter(adapter);
iv1.setOnClickListener(this);
iv2.setOnClickListener(this);
iv3.setOnClickListener(this);
}
// 獲取數據源
public void loadMusicData(){
int id = 1;
List<MusicInfo>list = new ArrayList<>();
//1.獲取ContentResolver對象
ContentResolver resolver = getContentResolver();
//2.獲取Uri地址
Uri musicUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
//3.獲取數據
Cursor cursor = resolver.query(musicUri, null, null, null, null);
//4.遍歷cursor
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DISPLAY_NAME));
String singer = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
int duration = cursor.getInt(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
MusicInfo musicInfo = new MusicInfo(name, singer, path, duration, id);
//添加對象到集合中
list.add(musicInfo);
id++;
}
//數據源發生變化,通知更新
adapter.notifyDataSetChanged();
/**
* 播放音樂
*1.mediaplayer 不能爲null 而且沒有在播放中
* */
public void playMusic(int position){
MusicInfo info = mDatas.get(position);
try {
mediaPlayer.setDataSource(info.getMusicPath());
if (mediaPlayer!=null&&!mediaPlayer.isPlaying()) {
try {
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (IOException e) {
e.printStackTrace();
}
* 停止音樂的方法
* 1.mediaplayer 不能爲null 而且正在播放中...
* */
public void stopMusic(){
if (mediaPlayer!=null&&mediaPlayer.isPlaying()) {
mediaPlayer.pause();
mediaPlayer.seekTo(0);
mediaPlayer.stop();
}
}
protected void onStop() {
super.onStop();
stopMusic();
// 釋放資源
mediaPlayer.release();
}
public void onClick(View v) {
switch (v.getId()){
case R.id.iv1:
po();
break;
case R.id.iv2:
pi();
break;
case R.id.iv3:
pu();
break;
}
}
//下一首
private void pu() {
int arrawcount=0;
if (count!=mDatas.size()-1) {
arrawcount= count + 1;
MusicInfo info = mDatas.get(arrawcount);
musicnameTv.setText(info.getMusicName());
musicsingerTv.setText(info.getMusicSinger());
stopMusic();
}else {
arrawcount= 0;
MusicInfo info = mDatas.get(arrawcount);
musicnameTv.setText(info.getMusicName());
musicsingerTv.setText(info.getMusicSinger());
stopMusic();
playMusic(arrawcount);
count=arrawcount;
}
//暫停的方法
private void pi() {
if (mediaPlayer!=null&&mediaPlayer.isPlaying()) {
mediaPlayer.pause();
}else {
mediaPlayer.start();
}
}
//上一首
private void po() {
int arrawcount=0;
if (count!=0) {
arrawcount= count - 1;
MusicInfo info = mDatas.get(arrawcount);
musicnameTv.setText(info.getMusicName());
musicsingerTv.setText(info.getMusicSinger());
stopMusic();
mediaPlayer.reset();
}else {
arrawcount= mDatas.size()-1;
MusicInfo info = mDatas.get(arrawcount);
musicnameTv.setText(info.getMusicName());
musicsingerTv.setText(info.getMusicSinger());
stopMusic();
mediaPlayer.reset();
}
playMusic(arrawcount);
count=arrawcount;
}
}
private Context context;
private List<MusicInfo>mDatas;
this.context = context;
this.mDatas = mDatas;
}
public int getCount() {
return mDatas.size();
}
public Object getItem(int position) {
return mDatas.get(position);
}
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView==null) {
convertView = LayoutInflater.from(context).inflate(R.layout.list_item_music,null);
holder = new ViewHolder(convertView);
convertView.setTag(holder);
}else{
holder = (ViewHolder) convertView.getTag();
}
holder.nameTv.setText(musicInfo.getMusicName());
holder.idTv.setText(musicInfo.getId()+"");
holder.singerTv.setText(musicInfo.getMusicSinger());
String time = sdf.format(new Date(musicInfo.getDuration()));
holder.timeTv.setText(time);
return convertView;
}
class ViewHolder {
TextView nameTv,idTv,singerTv,timeTv;
public ViewHolder(View itemView){
nameTv = (TextView) itemView.findViewById(R.id.item_name);
idTv = (TextView) itemView.findViewById(R.id.item_id);
singerTv = (TextView) itemView.findViewById(R.id.item_singer);
timeTv = (TextView) itemView.findViewById(R.id.item_time);
}
private String musicName;
private String musicSinger;
private String musicPath;
private int duration;
private int id;
this.musicName = musicName;
this.musicSinger = musicSinger;
this.musicPath = musicPath;
this.duration = duration;
this.id = id;
}
}
return musicName;
}
this.musicName = musicName;
}
return musicSinger;
}
this.musicSinger = musicSinger;
}
return musicPath;
}
this.musicPath = musicPath;
}
return duration;
}
this.duration = duration;
}
return id;
}
this.id = id;
}
}
activity_main
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="@drawable/bj"
tools:context="com.example.zkzice1.MainActivity">
android:text="點擊進入音樂"
android:textSize="24dp"
android:onClick="click"
android:textColor="#ffb6b6"
android:background="@drawable/aaa"
android:layout_width="match_parent"
android:layout_height="60dp"
android:id="@+id/button2"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
android:text="點擊進入拍照"
android:onClick="click"
android:textSize="24dp"
android:textColor="#ffb6b6"
android:background="@drawable/aaa"
android:layout_width="match_parent"
android:layout_height="60dp"
android:id="@+id/button"
android:layout_below="@+id/button2"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_yinyue"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:background="#fcf5f5"
tools:context="com.example.zkzice1.yinyue">
<Button
android:id="@+id/btn"
android:background="@drawable/aaa"
android:layout_width="match_parent"
android:layout_height="60dp"
android:text="打開照相機"
android:textSize="24dp"
android:textColor="#ffb6b6"
android:onClick="openCamera"/>
<ImageView
android:id="@+id/iv"
android:layout_width="300dp"
android:layout_height="300dp"
android:src="@drawable/aa"
android:layout_gravity="center_horizontal"/>
</LinearLayout>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:orientation="vertical"
android:background="#ffeeee"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/listView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:divider="#ffa7a4"
android:dividerHeight="1dp">
</ListView>
android:layout_width="match_parent"
android:layout_height="90dp"
android:background="#ffd7d7"
android:layout_alignParentBottom="true">
android:id="@+id/music_img"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_marginLeft="20dp"
android:layout_marginTop="10dp"
android:src="@mipmap/aa"/>
android:id="@+id/music_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歌名"
android:textSize="14sp"
android:textColor="#ff7777"
android:layout_marginLeft="10dp"
android:layout_alignTop="@+id/music_img"
android:layout_toRightOf="@+id/music_img"
android:layout_toEndOf="@+id/music_img"
android:layout_marginStart="10dp" />
android:id="@+id/music_singer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歌手名"
android:textSize="12sp"
android:textColor="#ff8686"
android:layout_below="@+id/music_name"
android:layout_alignLeft="@+id/music_name"
android:layout_alignStart="@+id/music_name" />
android:id="@+id/iv3"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@mipmap/xia"
android:layout_marginRight="18dp"
android:layout_marginEnd="18dp"
android:layout_alignTop="@+id/iv1"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
android:id="@+id/iv2"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@mipmap/zt"
android:layout_alignTop="@+id/iv3"
android:layout_toLeftOf="@+id/iv3"
android:layout_toStartOf="@+id/iv3"
android:layout_marginRight="16dp"
android:layout_marginEnd="16dp" />
android:id="@+id/iv1"
android:src="@mipmap/shang"
android:layout_width="30dp"
android:layout_height="30dp"
android:layout_alignBottom="@+id/music_img"
android:layout_toLeftOf="@+id/iv3"
android:layout_toStartOf="@+id/iv3"
android:layout_marginRight="58dp"
android:layout_marginEnd="58dp" />
</RelativeLayout>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
android:id="@+id/item_id"
android:layout_width="40dp"
android:layout_height="70dp"
android:text="1"
android:gravity="center"
android:textSize="18sp"
android:textColor="#000"/>
android:id="@+id/item_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="李白"
android:textColor="#000"
android:textSize="15dp"
android:layout_marginTop="10dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
android:layout_toRightOf="@id/item_id"/>
android:id="@+id/item_singer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="李榮浩"
android:textColor="#333"
android:textSize="12sp"
android:paddingLeft="10dp"
android:layout_below="@id/item_name"
android:layout_toRightOf="@id/item_id"/>
android:id="@+id/item_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="4分30秒"
android:textColor="#000"
android:textSize="12dp"
android:layout_alignBottom="@id/item_singer"
android:layout_marginBottom="5dp"
android:layout_marginRight="15dp"
android:layout_alignParentRight="true"/>
權限 +++++
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />