跳转页面,跳转到相对页面中
- package com.jj.weektwo;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import com.jj.weektwo.demo01.CamearImageAcivity;
- import com.jj.weektwo.demo02.MediaAudioActivity;
- import com.jj.weektwo.demo03.LocalVideoActivity;
- public class MainActivity extends AppCompatActivity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- }
- public void onClick(View view) {
- Intent intent=new Intent();
- switch (view.getId()){
- case R.id.btn1_camera:
- intent.setClass(this, CamearImageAcivity.class);
- break;
- case R.id.btn2_music:
- intent.setClass(this, MediaAudioActivity.class);
- break;
- case R.id.btn3_video:
- intent.setClass(this, LocalVideoActivity.class);
- break;
- }
- startActivity(intent);
- }
- }
package com.jj.weektwo;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.jj.weektwo.demo01.CamearImageAcivity;
import com.jj.weektwo.demo02.MediaAudioActivity;
import com.jj.weektwo.demo03.LocalVideoActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onClick(View view) {
Intent intent=new Intent();
switch (view.getId()){
case R.id.btn1_camera:
intent.setClass(this, CamearImageAcivity.class);
break;
case R.id.btn2_music:
intent.setClass(this, MediaAudioActivity.class);
break;
case R.id.btn3_video:
intent.setClass(this, LocalVideoActivity.class);
break;
}
startActivity(intent);
}
}
手机中的照相机
- package com.jj.weektwo.demo01;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.graphics.BitmapFactory;
- import android.os.Bundle;
- import android.provider.MediaStore;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.ImageView;
- import com.jj.weektwo.R;
- import java.io.File;
- public class CamearImageAcivity extends AppCompatActivity {
- private ImageView iv;
- private String path;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_camear_image_acivity);
- iv=(ImageView)findViewById(R.id.iv);
- path=getExternalCacheDir().getAbsolutePath()+ File.separator+"222.png";
- }
- public void onClick(View view) {
- switch (view.getId()){
- case R.id.camera:
- Intent intent=new Intent();
- intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(intent,200);
- break;
- }
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- //判断的是requestCode和resultCode
- if (requestCode==200&&resultCode== Activity.RESULT_OK){
- Bundle bundle=data.getExtras();
- Bitmap bm=(Bitmap)bundle.get("data");
- if (bm!=null){
- iv.setImageBitmap(bm);
- }
- }else if (requestCode==300&&resultCode==Activity.RESULT_OK){
- BitmapFactory.Options options=new BitmapFactory.Options();
- options.inJustDecodeBounds=true;
- BitmapFactory.decodeFile(path,options);
- int outHeight=options.outHeight;
- int outWidth=options.outWidth;
- int sampleHeight=outHeight/200;
- int sampleWidth=outWidth/200;
- int size=Math.max(sampleHeight,sampleWidth);
- options.inSampleSize=size;
- options.inPreferredConfig=Bitmap.Config.RGB_565;
- options.inJustDecodeBounds=false;
- Bitmap bitmap=BitmapFactory.decodeFile(path,options);
- iv.setImageBitmap(bitmap);
- }
- }
- }
package com.jj.weektwo.demo01;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageView;
import com.jj.weektwo.R;
import java.io.File;
public class CamearImageAcivity extends AppCompatActivity {
private ImageView iv;
private String path;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_camear_image_acivity);
iv=(ImageView)findViewById(R.id.iv);
path=getExternalCacheDir().getAbsolutePath()+ File.separator+"222.png";
}
public void onClick(View view) {
switch (view.getId()){
case R.id.camera:
Intent intent=new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent,200);
break;
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//判断的是requestCode和resultCode
if (requestCode==200&&resultCode== Activity.RESULT_OK){
Bundle bundle=data.getExtras();
Bitmap bm=(Bitmap)bundle.get("data");
if (bm!=null){
iv.setImageBitmap(bm);
}
}else if (requestCode==300&&resultCode==Activity.RESULT_OK){
BitmapFactory.Options options=new BitmapFactory.Options();
options.inJustDecodeBounds=true;
BitmapFactory.decodeFile(path,options);
int outHeight=options.outHeight;
int outWidth=options.outWidth;
int sampleHeight=outHeight/200;
int sampleWidth=outWidth/200;
int size=Math.max(sampleHeight,sampleWidth);
options.inSampleSize=size;
options.inPreferredConfig=Bitmap.Config.RGB_565;
options.inJustDecodeBounds=false;
Bitmap bitmap=BitmapFactory.decodeFile(path,options);
iv.setImageBitmap(bitmap);
}
}
}
照相机中的XML文件
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/activity_camear_image_acivity"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context="com.jj.weektwo.demo01.CamearImageAcivity">
- <Button
- android:id="@+id/camera"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="跳转照相界面"
- android:layout_marginTop="20dp"
- android:onClick="onClick"/>
- <ImageView
- android:id="@+id/iv"
- android:layout_marginTop="20dp"
- android:layout_width="match_parent"
- android:layout_height="200dp"
- android:src="@mipmap/ic_launcher"/>
- </LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_camear_image_acivity"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.jj.weektwo.demo01.CamearImageAcivity">
<Button
android:id="@+id/camera"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="跳转照相界面"
android:layout_marginTop="20dp"
android:onClick="onClick"/>
<ImageView
android:id="@+id/iv"
android:layout_marginTop="20dp"
android:layout_width="match_parent"
android:layout_height="200dp"
android:src="@mipmap/ic_launcher"/>
</LinearLayout>
获取本地音频
1、获取本地音频的Activity
- package com.jj.weektwo.demo02;
- import android.content.ContentResolver;
- import android.database.Cursor;
- import android.icu.text.SimpleDateFormat;
- import android.media.MediaPlayer;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.provider.MediaStore;
- import android.support.annotation.RequiresApi;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ListView;
- import android.widget.TextView;
- import com.jj.weektwo.R;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- public class MediaAudioActivity extends AppCompatActivity {
- private ListView lv;
- private List<MusicInfo> mlist=new ArrayList<>();
- private MusicAdapter adapter;
- private TextView singNameTv,singerTv;
- private MediaPlayer mediaPlayer;
- @RequiresApi(api = Build.VERSION_CODES.N)
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_media_audio);
- lv=(ListView)findViewById(R.id.music_lv);
- singerTv=(TextView)findViewById(R.id.music_song);
- singNameTv=(TextView)findViewById(R.id.music_singer);
- adapter=new MusicAdapter(this,mlist);
- lv.setAdapter(adapter);
- LoadLocalData();
- mediaPlayer=new MediaPlayer();
- lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- MusicInfo info=mlist.get(i);
- singNameTv.setText(info.getSinger());
- singerTv.setText(info.getSingNamer());
- stopMusic();
- mediaPlayer.reset();
- try {
- mediaPlayer.setDataSource(info.getPath());
- playMusic();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void playMusic() {
- if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
- try {
- mediaPlayer.prepare();
- mediaPlayer.start();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private void stopMusic() {
- if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
- mediaPlayer.pause();
- mediaPlayer.seekTo(0);
- mediaPlayer.stop();
- }
- }
- });
- }
- @RequiresApi(api = Build.VERSION_CODES.N)
- private void LoadLocalData() {
- ContentResolver resolver=getContentResolver();
- Uri musicUri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
- Cursor cursor=resolver.query(musicUri,null,null,null,null);
- int id=0;
- while (cursor.moveToNext()){
- String title=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
- String display_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));
- long duration=cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
- SimpleDateFormat sdf=new SimpleDateFormat("mm:ss");
- String time=sdf.format(new Date(duration));
- id++;
- // String idStr=id+" ";
- int idStr=id;
- MusicInfo info=new MusicInfo(idStr,title,singer,time,path);
- mlist.add(info);
- }
- adapter.notifyDataSetChanged();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- stopMusic();
- }
- private void stopMusic() {
- if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
- mediaPlayer.pause();
- mediaPlayer.seekTo(0);
- mediaPlayer.stop();
- }
- }
- }
package com.jj.weektwo.demo02;
import android.content.ContentResolver;
import android.database.Cursor;
import android.icu.text.SimpleDateFormat;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.jj.weektwo.R;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class MediaAudioActivity extends AppCompatActivity {
private ListView lv;
private List<MusicInfo> mlist=new ArrayList<>();
private MusicAdapter adapter;
private TextView singNameTv,singerTv;
private MediaPlayer mediaPlayer;
@RequiresApi(api = Build.VERSION_CODES.N)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_media_audio);
lv=(ListView)findViewById(R.id.music_lv);
singerTv=(TextView)findViewById(R.id.music_song);
singNameTv=(TextView)findViewById(R.id.music_singer);
adapter=new MusicAdapter(this,mlist);
lv.setAdapter(adapter);
LoadLocalData();
mediaPlayer=new MediaPlayer();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
MusicInfo info=mlist.get(i);
singNameTv.setText(info.getSinger());
singerTv.setText(info.getSingNamer());
stopMusic();
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(info.getPath());
playMusic();
} catch (IOException e) {
e.printStackTrace();
}
}
private void playMusic() {
if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
try {
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void stopMusic() {
if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
mediaPlayer.pause();
mediaPlayer.seekTo(0);
mediaPlayer.stop();
}
}
});
}
@RequiresApi(api = Build.VERSION_CODES.N)
private void LoadLocalData() {
ContentResolver resolver=getContentResolver();
Uri musicUri= MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor cursor=resolver.query(musicUri,null,null,null,null);
int id=0;
while (cursor.moveToNext()){
String title=cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String display_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));
long duration=cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
SimpleDateFormat sdf=new SimpleDateFormat("mm:ss");
String time=sdf.format(new Date(duration));
id++;
// String idStr=id+" ";
int idStr=id;
MusicInfo info=new MusicInfo(idStr,title,singer,time,path);
mlist.add(info);
}
adapter.notifyDataSetChanged();
}
@Override
protected void onDestroy() {
super.onDestroy();
stopMusic();
}
private void stopMusic() {
if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
mediaPlayer.pause();
mediaPlayer.seekTo(0);
mediaPlayer.stop();
}
}
}
本机音乐的实体类
- package com.jj.weektwo.demo02;
- /**
- * Created by jj on 2018/1/6.
- */
- public class MusicInfo {
- private int id;
- private String singNamer;
- private String singer;
- private String time;
- private String path;
- public MusicInfo() {
- }
- public MusicInfo(int id, String singNamer, String singer, String time, String path) {
- this.id = id;
- this.singNamer = singNamer;
- this.singer = singer;
- this.time = time;
- this.path = path;
- }
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getSingNamer() {
- return singNamer;
- }
- public void setSingNamer(String singNamer) {
- this.singNamer = singNamer;
- }
- public String getSinger() {
- return singer;
- }
- public void setSinger(String singer) {
- this.singer = singer;
- }
- public String getTime() {
- return time;
- }
- public void setTime(String time) {
- this.time = time;
- }
- public String getPath() {
- return path;
- }
- public void setPath(String path) {
- this.path = path;
- }
- @Override
- public String toString() {
- return "MusicInfo{" +
- "id=" + id +
- ", singNamer='" + singNamer + '\'' +
- ", singer='" + singer + '\'' +
- ", time='" + time + '\'' +
- ", path='" + path + '\'' +
- '}';
- }
- }
package com.jj.weektwo.demo02;
/**
* Created by jj on 2018/1/6.
*/
public class MusicInfo {
private int id;
private String singNamer;
private String singer;
private String time;
private String path;
public MusicInfo() {
}
public MusicInfo(int id, String singNamer, String singer, String time, String path) {
this.id = id;
this.singNamer = singNamer;
this.singer = singer;
this.time = time;
this.path = path;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getSingNamer() {
return singNamer;
}
public void setSingNamer(String singNamer) {
this.singNamer = singNamer;
}
public String getSinger() {
return singer;
}
public void setSinger(String singer) {
this.singer = singer;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
@Override
public String toString() {
return "MusicInfo{" +
"id=" + id +
", singNamer='" + singNamer + '\'' +
", singer='" + singer + '\'' +
", time='" + time + '\'' +
", path='" + path + '\'' +
'}';
}
}
获取本机音乐的适配器
- package com.jj.weektwo.demo02;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.TextView;
- import com.jj.weektwo.R;
- import java.util.List;
- /**
- * Created by jj on 2018/1/6.
- */
- public class MusicAdapter extends BaseAdapter{
- private Context context;
- private List<MusicInfo> mlist;
- private LayoutInflater inflater;
- public MusicAdapter(Context context, List<MusicInfo> mlist) {
- this.context = context;
- this.mlist = mlist;
- inflater=LayoutInflater.from(context);
- }
- @Override
- public int getCount() {
- return mlist.size();
- }
- @Override
- public Object getItem(int i) {
- return mlist.get(i);
- }
- @Override
- public long getItemId(int i) {
- return i;
- }
- @Override
- public View getView(int i, View view, ViewGroup viewGroup) {
- Hello hello=null;
- if (view==null){
- hello=new Hello();
- view=inflater.inflate(R.layout.item_music,viewGroup,false);
- hello.idTv=(TextView)view.findViewById(R.id.item_num);
- hello.titileTv=(TextView)view.findViewById(R.id.item_sing);
- hello.singerTv=(TextView)view.findViewById(R.id.item_singer);
- hello.timeTv=(TextView)view.findViewById(R.id.item_time);
- view.setTag(hello);
- }else {
- hello= (Hello) view.getTag();
- }
- MusicInfo musicInfo=mlist.get(i);
- hello.idTv.setText(musicInfo.getId()+"");
- hello.titileTv.setText(musicInfo.getSingNamer());
- hello.singerTv.setText(musicInfo.getSinger());
- hello.timeTv.setText(musicInfo.getTime());
- return view;
- }
- class Hello{
- TextView idTv,titileTv,singerTv,timeTv;
- }
- }
package com.jj.weektwo.demo02;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
import com.jj.weektwo.R;
import java.util.List;
/**
* Created by jj on 2018/1/6.
*/
public class MusicAdapter extends BaseAdapter{
private Context context;
private List<MusicInfo> mlist;
private LayoutInflater inflater;
public MusicAdapter(Context context, List<MusicInfo> mlist) {
this.context = context;
this.mlist = mlist;
inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return mlist.size();
}
@Override
public Object getItem(int i) {
return mlist.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Hello hello=null;
if (view==null){
hello=new Hello();
view=inflater.inflate(R.layout.item_music,viewGroup,false);
hello.idTv=(TextView)view.findViewById(R.id.item_num);
hello.titileTv=(TextView)view.findViewById(R.id.item_sing);
hello.singerTv=(TextView)view.findViewById(R.id.item_singer);
hello.timeTv=(TextView)view.findViewById(R.id.item_time);
view.setTag(hello);
}else {
hello= (Hello) view.getTag();
}
MusicInfo musicInfo=mlist.get(i);
hello.idTv.setText(musicInfo.getId()+"");
hello.titileTv.setText(musicInfo.getSingNamer());
hello.singerTv.setText(musicInfo.getSinger());
hello.timeTv.setText(musicInfo.getTime());
return view;
}
class Hello{
TextView idTv,titileTv,singerTv,timeTv;
}
}
本机音乐的XML文件
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/activity_media_audio"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- tools:context="com.jj.weektwo.demo02.MediaAudioActivity">
- <ListView
- android:id="@+id/music_lv"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:divider="#ddd"
- android:dividerHeight="1dp"></ListView>
- <RelativeLayout
- android:layout_width="match_parent"
- android:layout_height="80dp"
- android:background="#eee"
- android:layout_alignParentBottom="true">
- <ImageView
- android:id="@+id/music_iv"
- android:layout_width="70dp"
- android:layout_height="70dp"
- android:layout_centerVertical="true"
- android:layout_marginLeft="20dp"
- android:src="@mipmap/ic_launcher"/>
- <TextView
- android:id="@+id/music_song"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="歌名"
- android:singleLine="true"
- android:ellipsize="end"
- android:textSize="20sp"
- android:textStyle="bold"
- android:layout_toRightOf="@id/music_iv"
- android:layout_marginTop="10dp"
- android:layout_marginLeft="10dp"/>
- <TextView
- android:id="@+id/music_singer"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text=""
- android:textSize="18sp"
- android:layout_below="@id/music_song"
- android:layout_toRightOf="@id/music_iv"
- android:layout_marginTop="15dp"
- android:layout_marginLeft="15dp"/>
- </RelativeLayout>
- </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_media_audio"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.jj.weektwo.demo02.MediaAudioActivity">
<ListView
android:id="@+id/music_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#ddd"
android:dividerHeight="1dp"></ListView>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="80dp"
android:background="#eee"
android:layout_alignParentBottom="true">
<ImageView
android:id="@+id/music_iv"
android:layout_width="70dp"
android:layout_height="70dp"
android:layout_centerVertical="true"
android:layout_marginLeft="20dp"
android:src="@mipmap/ic_launcher"/>
<TextView
android:id="@+id/music_song"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="歌名"
android:singleLine="true"
android:ellipsize="end"
android:textSize="20sp"
android:textStyle="bold"
android:layout_toRightOf="@id/music_iv"
android:layout_marginTop="10dp"
android:layout_marginLeft="10dp"/>
<TextView
android:id="@+id/music_singer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
android:textSize="18sp"
android:layout_below="@id/music_song"
android:layout_toRightOf="@id/music_iv"
android:layout_marginTop="15dp"
android:layout_marginLeft="15dp"/>
</RelativeLayout>
</RelativeLayout>
listview中的子布局
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="match_parent"
- android:layout_height="wrap_content">
- <TextView
- android:id="@+id/item_num"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="01"
- android:textSize="20sp"
- android:textColor="@android:color/black"
- android:layout_marginTop="20dp"
- android:layout_marginLeft="20dp"/>
- <TextView
- android:id="@+id/item_sing"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="玫瑰花的葬礼"
- android:textStyle="bold"
- android:singleLine="true"
- android:ellipsize="end"
- android:layout_toRightOf="@id/item_num"
- android:layout_marginLeft="20dp"
- android:layout_marginTop="20dp"
- android:textSize="20sp"
- android:textColor="@android:color/black"/>
- <TextView
- android:id="@+id/item_singer"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="许嵩"
- android:layout_below="@id/item_sing"
- android:layout_marginLeft="140dp"
- android:layout_marginTop="20dp"
- android:textSize="20sp" />
- <TextView
- android:id="@+id/item_time"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="时间:4:44"
- android:layout_toRightOf="@id/item_singer"
- android:layout_below="@id/item_sing"
- android:layout_marginTop="20dp"
- android:textSize="20dp"
- android:textColor="@android:color/holo_red_dark"
- android:layout_marginLeft="80dp"/>
- </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/item_num"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="01"
android:textSize="20sp"
android:textColor="@android:color/black"
android:layout_marginTop="20dp"
android:layout_marginLeft="20dp"/>
<TextView
android:id="@+id/item_sing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="玫瑰花的葬礼"
android:textStyle="bold"
android:singleLine="true"
android:ellipsize="end"
android:layout_toRightOf="@id/item_num"
android:layout_marginLeft="20dp"
android:layout_marginTop="20dp"
android:textSize="20sp"
android:textColor="@android:color/black"/>
<TextView
android:id="@+id/item_singer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="许嵩"
android:layout_below="@id/item_sing"
android:layout_marginLeft="140dp"
android:layout_marginTop="20dp"
android:textSize="20sp" />
<TextView
android:id="@+id/item_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="时间:4:44"
android:layout_toRightOf="@id/item_singer"
android:layout_below="@id/item_sing"
android:layout_marginTop="20dp"
android:textSize="20dp"
android:textColor="@android:color/holo_red_dark"
android:layout_marginLeft="80dp"/>
</RelativeLayout>
获取本地文件中的视频(里面用的是节操)
获取视频的Activity
- package com.jj.weektwo.demo03;
- import android.content.ContentResolver;
- import android.database.Cursor;
- import android.media.MediaPlayer;
- import android.net.Uri;
- import android.os.Bundle;
- import android.provider.MediaStore;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ListView;
- import com.jj.weektwo.R;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- public class LocalVideoActivity extends AppCompatActivity {
- private ListView lv;
- private List<LocalVideoBean> mlist=new ArrayList<>();
- private LocalVideoAdapter adapter;
- private MediaPlayer mediaPlayer;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_local_video);
- lv=(ListView)findViewById(R.id.video_lv);
- adapter=new LocalVideoAdapter(mlist,this);
- lv.setAdapter(adapter);
- LoadLocalData();
- mediaPlayer=new MediaPlayer();
- lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
- LocalVideoBean bean=mlist.get(i);
- stopMusic();
- mediaPlayer.reset();
- try {
- mediaPlayer.setDataSource(bean.getPath());
- playMusic();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private void playMusic() {
- if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
- try {
- mediaPlayer.prepare();
- mediaPlayer.start();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- private void stopMusic() {
- if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
- mediaPlayer.pause();
- mediaPlayer.seekTo(0);
- mediaPlayer.stop();
- }
- }
- });
- }
- private void LoadLocalData() {
- ContentResolver resolver=getContentResolver();
- Uri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
- Cursor cursor=resolver.query(uri,null,null,null,MediaStore.Video.Media.DEFAULT_SORT_ORDER);
- while (cursor.moveToNext()){
- String title=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME));
- String path=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
- LocalVideoBean bean=new LocalVideoBean(path,title);
- mlist.add(bean);
- }
- adapter.notifyDataSetChanged();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- stopMusic();
- }
- private void stopMusic() {
- if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
- mediaPlayer.pause();
- mediaPlayer.seekTo(0);
- mediaPlayer.stop();
- }
- }
- }
package com.jj.weektwo.demo03;
import android.content.ContentResolver;
import android.database.Cursor;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import com.jj.weektwo.R;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class LocalVideoActivity extends AppCompatActivity {
private ListView lv;
private List<LocalVideoBean> mlist=new ArrayList<>();
private LocalVideoAdapter adapter;
private MediaPlayer mediaPlayer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_local_video);
lv=(ListView)findViewById(R.id.video_lv);
adapter=new LocalVideoAdapter(mlist,this);
lv.setAdapter(adapter);
LoadLocalData();
mediaPlayer=new MediaPlayer();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
LocalVideoBean bean=mlist.get(i);
stopMusic();
mediaPlayer.reset();
try {
mediaPlayer.setDataSource(bean.getPath());
playMusic();
} catch (IOException e) {
e.printStackTrace();
}
}
private void playMusic() {
if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
try {
mediaPlayer.prepare();
mediaPlayer.start();
} catch (IOException e) {
e.printStackTrace();
}
}
}
private void stopMusic() {
if (mediaPlayer!=null&&mediaPlayer.isPlaying()){
mediaPlayer.pause();
mediaPlayer.seekTo(0);
mediaPlayer.stop();
}
}
});
}
private void LoadLocalData() {
ContentResolver resolver=getContentResolver();
Uri uri= MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
Cursor cursor=resolver.query(uri,null,null,null,MediaStore.Video.Media.DEFAULT_SORT_ORDER);
while (cursor.moveToNext()){
String title=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DISPLAY_NAME));
String path=cursor.getString(cursor.getColumnIndex(MediaStore.Video.Media.DATA));
LocalVideoBean bean=new LocalVideoBean(path,title);
mlist.add(bean);
}
adapter.notifyDataSetChanged();
}
@Override
protected void onDestroy() {
super.onDestroy();
stopMusic();
}
private void stopMusic() {
if (mediaPlayer!=null&&!mediaPlayer.isPlaying()){
mediaPlayer.pause();
mediaPlayer.seekTo(0);
mediaPlayer.stop();
}
}
}
获取视频的实体类
- package com.jj.weektwo.demo03;
- /**
- * Created by jj on 2018/1/6.
- */
- public class LocalVideoBean {
- private String path;
- private String title;
- public LocalVideoBean() {
- }
- public LocalVideoBean(String path, String title) {
- this.path = path;
- this.title = title;
- }
- public String getPath() {
- return path;
- }
- public void setPath(String path) {
- this.path = path;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- @Override
- public String toString() {
- return "LocalVideoBean{" +
- "path='" + path + '\'' +
- ", title='" + title + '\'' +
- '}';
- }
- }
package com.jj.weektwo.demo03;
/**
* Created by jj on 2018/1/6.
*/
public class LocalVideoBean {
private String path;
private String title;
public LocalVideoBean() {
}
public LocalVideoBean(String path, String title) {
this.path = path;
this.title = title;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "LocalVideoBean{" +
"path='" + path + '\'' +
", title='" + title + '\'' +
'}';
}
}
适配器
- package com.jj.weektwo.demo03;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import com.jj.weektwo.R;
- import java.util.List;
- import cn.jzvd.JZVideoPlayer;
- import cn.jzvd.JZVideoPlayerStandard;
- /**
- * Created by jj on 2018/1/6.
- */
- public class LocalVideoAdapter extends BaseAdapter {
- private List<LocalVideoBean> mlist;
- private Context context;
- private LayoutInflater inflater;
- public LocalVideoAdapter(List<LocalVideoBean> mlist, Context context) {
- this.mlist = mlist;
- this.context = context;
- inflater=LayoutInflater.from(context);
- }
- @Override
- public int getCount() {
- return mlist.size();
- }
- @Override
- public Object getItem(int i) {
- return mlist.get(i);
- }
- @Override
- public long getItemId(int i) {
- return i;
- }
- @Override
- public View getView(int i, View view, ViewGroup viewGroup) {
- Hello hello=null;
- if (view==null){
- hello=new Hello();
- view=inflater.inflate(R.layout.item_video,viewGroup,false);
- hello.playerStandard=(JZVideoPlayerStandard)view.findViewById(R.id.video_JZ);
- view.setTag(hello);
- }else {
- hello=(Hello)view.getTag();
- }
- LocalVideoBean bean=mlist.get(i);
- hello.playerStandard.setUp(bean.getPath(), JZVideoPlayer.SCREEN_WINDOW_LIST,bean.getTitle());
- return view;
- }
- class Hello{
- JZVideoPlayerStandard playerStandard;
- }
- }
package com.jj.weektwo.demo03;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import com.jj.weektwo.R;
import java.util.List;
import cn.jzvd.JZVideoPlayer;
import cn.jzvd.JZVideoPlayerStandard;
/**
* Created by jj on 2018/1/6.
*/
public class LocalVideoAdapter extends BaseAdapter {
private List<LocalVideoBean> mlist;
private Context context;
private LayoutInflater inflater;
public LocalVideoAdapter(List<LocalVideoBean> mlist, Context context) {
this.mlist = mlist;
this.context = context;
inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return mlist.size();
}
@Override
public Object getItem(int i) {
return mlist.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
Hello hello=null;
if (view==null){
hello=new Hello();
view=inflater.inflate(R.layout.item_video,viewGroup,false);
hello.playerStandard=(JZVideoPlayerStandard)view.findViewById(R.id.video_JZ);
view.setTag(hello);
}else {
hello=(Hello)view.getTag();
}
LocalVideoBean bean=mlist.get(i);
hello.playerStandard.setUp(bean.getPath(), JZVideoPlayer.SCREEN_WINDOW_LIST,bean.getTitle());
return view;
}
class Hello{
JZVideoPlayerStandard playerStandard;
}
}
XML文件
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:id="@+id/activity_local_video"
- 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"
- tools:context="com.jj.weektwo.demo03.LocalVideoActivity">
- <ListView
- android:id="@+id/video_lv"
- android:layout_width="match_parent"
- android:layout_height="match_parent"></ListView>
- </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_local_video"
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"
tools:context="com.jj.weektwo.demo03.LocalVideoActivity">
<ListView
android:id="@+id/video_lv"
android:layout_width="match_parent"
android:layout_height="match_parent"></ListView>
</RelativeLayout>
子布局
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical" android:layout_width="match_parent"
- android:layout_height="match_parent">
- <cn.jzvd.JZVideoPlayerStandard
- android:id="@+id/video_JZ"
- android:layout_width="match_parent"
- android:layout_height="220dp"></cn.jzvd.JZVideoPlayerStandard>
- </RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<cn.jzvd.JZVideoPlayerStandard
android:id="@+id/video_JZ"
android:layout_width="match_parent"
android:layout_height="220dp"></cn.jzvd.JZVideoPlayerStandard>
</RelativeLayout>
权限 读写权限
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.jj.weektwo">
- <uses-permission android:name="android.permission.INTERNET" />
- <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" />
- <application
- android:allowBackup="true"
- android:icon="@mipmap/ic_launcher"
- android:label="@string/app_name"
- android:supportsRtl="true"
- android:theme="@style/AppTheme">
- <activity android:name=".MainActivity">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- <activity android:name=".demo01.CamearImageAcivity" />
- <activity android:name=".demo02.MediaAudioActivity" />
- <activity android:name=".demo03.LocalVideoActivity" />
- </application>
- </manifest>
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.jj.weektwo">
<uses-permission android:name="android.permission.INTERNET" />
<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" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".demo01.CamearImageAcivity" />
<activity android:name=".demo02.MediaAudioActivity" />
<activity android:name=".demo03.LocalVideoActivity" />
</application>
</manifest>
改一下版本号 改为16 22 里面也有饺子的依赖
- apply plugin: 'com.android.application'
- android {
- compileSdkVersion 26
- buildToolsVersion "26.0.2"
- defaultConfig {
- applicationId "com.jj.weektwo"
- minSdkVersion 16
- targetSdkVersion 22
- versionCode 1
- versionName "1.0"
- testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
- }
- }
- }
- dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
- androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
- exclude group: 'com.android.support', module: 'support-annotations'
- })
- compile 'com.android.support:appcompat-v7:26.0.0-alpha1'
- testCompile 'junit:junit:4.12'
- compile 'cn.jzvd:jiaozivideoplayer:6.2.3'
- }