Android获取java获取file文件类型型是图片还是视频

&>&android选择本地视频和图片,很好的demo
android选择本地视频和图片,很好的demo
上传大小:820KB
可以选择视频和图片,异步加载。很好用。谢谢使用
综合评分:2(2位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有2条
感谢楼主分享
天天吃豆腐
综合评分:
积分/C币:5
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
android选择本地视频和图片,很好的demo
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
android选择本地视频和图片,很好的demoMediaStore提供了音频、视频、图片信息,我们可以通过ContentResolver进行读取。
首先给出了Audio,Video和Image三个类,然后分别定义了三个Provider:AudioProvider,VideoProvider,ImageProvider,貌似用到了工厂方法模式:D,最后给出了一个示例类Provider。
package com.public class Audio {
private int
private String displayN
private String mimeT
private long
private long
public Audio() {
* @param id
* @param title
* @param album
* @param artist
* @param path
* @param displayName
* @param mimeType
* @param duration
* @param size
public Audio(int id, String title, String album, String artist,
String path, String displayName, String mimeType, long duration,
long size) {
this.title =
this.album =
this.artist =
this.path =
this.displayName = displayN
this.mimeType = mimeT
this.duration =
this.size =
public int getId() {
public void setId(int id) {
public String getTitle() {
public void setTitle(String title) {
this.title =
public String getAlbum() {
public void setAlbum(String album) {
this.album =
public String getArtist() {
public void setArtist(String artist) {
this.artist =
public String getPath() {
public void setPath(String path) {
this.path =
public String getDisplayName() {
return displayN
public void setDisplayName(String displayName) {
this.displayName = displayN
public String getMimeType() {
return mimeT
public void setMimeType(String mimeType) {
this.mimeType = mimeT
public long getDuration() {
public void setDuration(long duration) {
this.duration =
public long getSize() {
public void setSize(long size) {
this.size =
package com.public class Video {
private int
private String displayN
private String mimeT
private long
private long
public Video() {
* @param id
* @param title
* @param album
* @param artist
* @param displayName
* @param mimeType
* @param data
* @param size
* @param duration
public Video(int id, String title, String album, String artist,
String displayName, String mimeType, String path, long size,
long duration) {
this.title =
this.album =
this.artist =
this.displayName = displayN
this.mimeType = mimeT
this.path =
this.size =
this.duration =
public int getId() {
public void setId(int id) {
public String getTitle() {
public void setTitle(String title) {
this.title =
public String getAlbum() {
public void setAlbum(String album) {
this.album =
public String getArtist() {
public void setArtist(String artist) {
this.artist =
public String getDisplayName() {
return displayN
public void setDisplayName(String displayName) {
this.displayName = displayN
public String getMimeType() {
return mimeT
public void setMimeType(String mimeType) {
this.mimeType = mimeT
public String getPath() {
public void setPath(String path) {
this.path =
public long getSize() {
public void setSize(long size) {
this.size =
public long getDuration() {
public void setDuration(long duration) {
this.duration =
package com.public class Image {
private int
private String displayN
private String mimeT
private long
public Image() {
* @param id
* @param title
* @param displayName
* @param mimeType
* @param path
* @param size
public Image(int id, String title, String displayName, String mimeType,
String path, long size) {
this.title =
this.displayName = displayN
this.mimeType = mimeT
this.path =
this.size =
public int getId() {
public void setId(int id) {
public String getTitle() {
public void setTitle(String title) {
this.title =
public String getDisplayName() {
return displayN
public void setDisplayName(String displayName) {
this.displayName = displayN
public String getMimeType() {
return mimeT
public void setMimeType(String mimeType) {
this.mimeType = mimeT
public String getPath() {
public void setPath(String path) {
this.path =
public long getSize() {
public void setSize(long size) {
this.size =
package com.import java.util.Lpublic interface AbstructProvider {
public List&?& getList();}
package com.import java.util.ArrayLimport java.util.Limport android.content.Cimport android.database.Cimport android.provider.MediaSpublic class AudioProvider implements AbstructProvider {
public AudioProvider(Context context) {
this.context =
public List&?& getList() {
List&Audio& list = null;
if (context != null) {
Cursor cursor = context.getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null,
null, null);
if (cursor != null) {
list = new ArrayList&Audio&();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));
String title = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));
String album = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));
String artist = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));
String path = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));
String displayName = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DISPLAY_NAME));
String mimeType = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.MIME_TYPE));
long duration = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));
long size = cursor
.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));
Audio audio = new Audio(id, title, album, artist, path,
displayName, mimeType, duration, size);
list.add(audio);
cursor.close();
package com.import java.util.ArrayLimport java.util.Limport android.content.Cimport android.database.Cimport android.provider.MediaSpublic class VideoProvider implements AbstructProvider {
public VideoProvider(Context context) {
this.context =
public List&?& getList() {
List&Video& list = null;
if (context != null) {
Cursor cursor = context.getContentResolver().query(
MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null,
null, null);
if (cursor != null) {
list = new ArrayList&Video&();
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media._ID));
String title = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.TITLE));
String album = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.ALBUM));
String artist = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.ARTIST));
String displayName = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DISPLAY_NAME));
String mimeType = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.MIME_TYPE));
String path = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DATA));
long duration = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.DURATION));
long size = cursor
.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Video.Media.SIZE));
Video video = new Video(id, title, album, artist, displayName, mimeType, path, size, duration);
list.add(video);
cursor.close();
package com.import java.util.ArrayLimport java.util.Limport android.content.Cimport android.database.Cimport android.provider.MediaSpublic class ImageProvider implements AbstructProvider {
public ImageProvider(Context context) {
this.context =
public List&?& getList() {
List&Image& list = null;
if (context != null) {
Cursor cursor = context.getContentResolver().query(
MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null,
null, null);
if (cursor != null) {
list = new ArrayList&Image&();
while (cursor.moveToNext()) {
int id = cursor
.getInt(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media._ID));
String title = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.TITLE));
String path = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DATA));
String displayName = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.DISPLAY_NAME));
String mimeType = cursor
.getString(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.MIME_TYPE));
long size = cursor
.getLong(cursor
.getColumnIndexOrThrow(MediaStore.Images.Media.SIZE));
Image audio = new Image(id, title, displayName, mimeType,
path, size);
list.add(audio);
cursor.close();
package com.import java.util.Limport android.app.Aimport android.os.Bpublic class Provider extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
AbstructProvider provider = new AudioProvider(this);
List&?& list = provider.getList();
// AbstructProvider provider = new VideoProvider(this);
// List&?& list = provider.getList();
// AbstructProvider provider = new ImageProvider(this);
// List&?& list = provider.getList();
阅读(...) 评论()Android获取SD卡上所有图片、视频缩略图和音乐专辑封面
首先,查询固有,图片的Uri为Images.Media.EXTERNAL_CONTENT_URI。
以下为具体查询实例,FileInfo为自定义的数据模型。
public ArrayList queryAllImage(final Context context) {
if (context == null) { //判断传入的参数的有效性
ArrayList images = new ArrayList();
ContentResolver resolver = context.getContentResolver();
Cursor cursor =
//查询数据库,参数分别为(路径,要查询的列名,条件语句,条件参数,排序)
cursor = resolver.query(Images.Media.EXTERNAL_CONTENT_URI, null, null ,null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
FileInfo image = new FileInfo();
image.setId(cursor.getInt(cursor.getColumnIndex(Images.Media._ID))); //获取唯一id
image.setFilePath(cursor.getString(cursor.getColumnIndex(Images.Media.DATA))); //文件路径
image.setFileName(cursor.getString(cursor.getColumnIndex(Images.Media.DISPLAY_NAME))); //文件名
还有很多属性可以设置
//可以通过下一行查看属性名,然后在Images.Media.里寻找对应常量名
Log.i(TAG, &queryAllImage --- all column name --- & + cursor.getColumnName(cursor.getPosition()));
//获取缩略图(如果数据量大的话,会很耗时&&需要考虑如何开辟子线程加载)
* 可以访问android.provider.MediaStore.Images.Thumbnails查询图片缩略图
* Thumbnails下的getThumbnail方法可以获得图片缩略图,其中第三个参数类型还可以选择MINI_KIND
Bitmap thumbnail = MediaStore.Images.Thumbnails.getThumbnail(resolver, image.getId(), Images.Thumbnails.MICRO_KIND, null);
image.setThumbnail(thumbnail);
images.add(image);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
也是先查询数据库获得音频相关信息,音频的Uri为Audio.Media.EXTERNAL_CONTENT_URI
以下为具体查询实例,FileInfo为自定义的数据模型。
public ArrayList queryAllAudio(final Context context) {
if (context == null) { //判断传入的参数的有效性
ArrayList audios = new ArrayList();
ContentResolver resolver = context.getContentResolver();
Cursor cursor =
//查询数据库,参数分别为(路径,要查询的列名,条件语句,条件参数,排序)
cursor = resolver.query(Audio.Media.EXTERNAL_CONTENT_URI, null, null ,null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
FileInfo audio = new FileInfo();
audio.setId(cursor.getInt(cursor.getColumnIndex(Audio.Media._ID))); //获取唯一id
audio.setFilePath(cursor.getString(cursor.getColumnIndex(Audio.Media.DATA))); //文件路径
audio.setFileName(cursor.getString(cursor.getColumnIndex(Audio.Media.DISPLAY_NAME))); //文件名
还有很多属性可以设置
//可以通过下一行查看属性名,然后去Audio.Media里寻找对应常量名
Log.i(TAG, &queryAllImage --- all column name --- & + cursor.getColumnName(cursor.getPosition()));
//获取专辑封面(如果数据量大的话,会很耗时&&需要考虑如何开辟子线程加载)
Bitmap albumArt = creatAlbumArt(audio.getFilePath());
audio.setThumbnail(albumArt);
audios.add(audio);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
* @Description 获取专辑封面
* @param filePath 文件路径,like XXX/XXX/XX.mp3
* @return 专辑封面bitmap
public Bitmap createAlbumArt(final String filePath) {
Bitmap bitmap =
//能够获取多媒体文件元数据的类
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(filePath); //设置数据源
byte[] embedPic = retriever.getEmbeddedPicture(); //得到字节型数据
bitmap = BitmapFactory.decodeByteArray(art, 0, art.length); //转换为图片
} catch (Exception e) {
e.printStackTrace();
} finally {
retriever.release();
} catch (Exception e2) {
e2.printStackTrace();
查询视频缩略图的方法和图片的很像。
以下为具体查询实例,FileInfo为自定义的数据模型。
public ArrayList queryAllVideo(final Context context) {
if (context == null) { //判断传入的参数的有效性
ArrayList videos = new ArrayList();
ContentResolver resolver = context.getContentResolver();
Cursor cursor =
//查询数据库,参数分别为(路径,要查询的列名,条件语句,条件参数,排序)
cursor = resolver.query(Video.Media.EXTERNAL_CONTENT_URI, null, null ,null, null);
if (cursor != null) {
while (cursor.moveToNext()) {
FileInfo video = new FileInfo();
video.setId(cursor.getInt(cursor.getColumnIndex(Video.Media._ID))); //获取唯一id
video.setFilePath(cursor.getString(cursor.getColumnIndex(Video.Media.DATA))); //文件路径
video.setFileName(cursor.getString(cursor.getColumnIndex(Video.Media.DISPLAY_NAME))); //文件名
还有很多属性可以设置
//可以通过下一行查看属性名,然后在Video.Media.里寻找对应常量名
Log.i(TAG, &queryAllImage --- all column name --- & + cursor.getColumnName(cursor.getPosition()));
//获取缩略图(如果数据量大的话,会很耗时&&需要考虑如何开辟子线程加载)
* 可以访问android.provider.MediaStore.Video.Thumbnails查询图片缩略图
* Thumbnails下的getThumbnail方法可以获得图片缩略图,其中第三个参数类型还可以选择MINI_KIND
Bitmap thumbnail = MediaStore.Video.Thumbnails.getThumbnail(resolver, image.getId(), Video.Thumbnails.MICRO_KIND, null);
video.setThumbnail(thumbnail);
videos.add(image);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (cursor != null) {
cursor.close();
以上方法经个人实践有效,如果你有任何问题,请留言告诉我。Android必知必会-获取视频文件的截图、缩略图
公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下。
公司最近要求给我负责的APP加上视频录制和发布的功能,我简单的完成了基本的录制和视频压缩功能,后来发现发布接口需要上传视频的截图,网上搜索了一下资料,在这里整理一下。
* 获取视频文件截图
* @param path 视频文件的路径
* @return Bitmap 返回获取的Bitmap
public static Bitmap getVideoThumb(String path) {
MediaMetadataRetriever media = new MediaMetadataRetriever();
media.setDataSource(path);
return media.getFrameAtTime();
* 获取视频文件缩略图 API&=8(2.2)
* @param path 视频文件的路径
* @param kind 缩略图的分辨率:MINI_KIND、MICRO_KIND、FULL_SCREEN_KIND
* @return Bitmap 返回获取的Bitmap
public static Bitmap getVideoThumb2(String path, int kind) {
return ThumbnailUtils.createVideoThumbnail(path, kind);
public static Bitmap getVideoThumb2(String path) {
return getVideoThumb2(path, MediaStore.Video.Thumbnails.FULL_SCREEN_KIND);
以上是获取视频文件的截图和缩略图的方法,你可能还需要把Bitmap保存成文件:
* Bitmap保存成File
* @param bitmap input bitmap
* @param name
output file's name
* @return String output file's path
public static String bitmap2File(Bitmap bitmap, String name) {
File f = new File(Environment.getExternalStorageDirectory() + name + ".jpg");
if (f.exists()) f.delete();
FileOutputStream fOut =
fOut = new FileOutputStream(f);
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close();
} catch (IOException e) {
return f.getAbsolutePath();
参考和总结
以上是自己搜集整理的一点资料,没有进行多方面的比较和深层次的分析(API版本限制等等),使用中有什么问题欢迎留言。
红黑联盟&版权所有
Copyright&& 2017
All rights reserved.

我要回帖

更多关于 php 获取文件类型 的文章

 

随机推荐