安卓编辑时候如何获取图片路径
1. 怎么获取指定手机存储相片的路径android
首先是相册图片的获取:
private final String IMAGE_TYPE = "image/*";
private final int IMAGE_CODE = 0; //这里的IMAGE_CODE是自己任意定义的
//使用intent调用系统提供的相册功能,使用startActivityForResult是为了获取用户选择的图片
Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT);
getAlbum.setType(IMAGE_TYPE);
startActivityForResult(getAlbum, IMAGE_CODE);
//重写onActivityResult以获得你需要的信息
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data){
if (resultCode != RESULT_OK) { //此处的 RESULT_OK 是系统自定义得一个常量
Log.e(TAG,"ActivityResult resultCode error");
return;
}
Bitmap bm = null;
//外界的程序访问ContentProvider所提供数据 可以通过ContentResolver接口
ContentResolver resolver = getContentResolver();
//此处的用于判断接收的Activity是不是你想要的那个
if (requestCode == IMAGE_CODE) {
try {
Uri originalUri = data.getData(); //获得图片的uri
bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); //显得到bitmap图片
这里开始的第二部分,获取图片的路径:
String[] proj = {MediaStore.Images.Media.DATA};
//好像是android多媒体数据库的封装接口,具体的看Android文档
Cursor cursor = managedQuery(originalUri, proj, null, null, null);
//按我个人理解 这个是获得用户选择的图片的索引值
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
//将光标移至开头 ,这个很重要,不小心很容易引起越界
cursor.moveToFirst();
//最后根据索引值获取图片路径
String path = cursor.getString(column_index);
}catch (IOException e) {
Log.e(TAG,e.toString());
}
}
}
2. android怎么从sd卡指定的文件夹中获取所有图片的路径URL,谢谢~感谢各位大神了
直接调用文件管理器选择图片即可。
1、调用系统提供的图片选择器,代码如下:
//注意,在Android4.4系统下建议使用 Intent.ACTION_OPEN_DOCUMENT方式
if (Utility.isKK()) {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image
public static String getDataColumn(Context context, Uri uri, String selection,
String[] selectionArgs) {
Cursor cursor = null;
final String column = "_data";
final String[] projection = {
column
};
处理返回结果:
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (resultCode == RESULT_OK) {
switch (requestCode) {
case PIC_RESULT://选择图库
case PIC_RESULT_KK:
imageFileUri = intent.getData();//获取选择图片的URI
break;
}
}
2、除此自外,系统还提供一种选择器,这个图片选择器可以屏蔽掉那个auto backup的目录.所以就开始打算用这个图片选择器来选图片了.
Intent intent=new Intent(Intent.ACTION_GET_CONTENT);//ACTION_OPEN_DOCUMENT
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/jpeg");
if(android.os.Build.VERSION.SDK_INT>=android.os.Build.VERSION_CODES.KITKAT){
startActivityForResult(intent, SELECT_PIC_KITKAT);
}else{
startActivityForResult(intent, SELECT_PIC);
}
为什么要分开不同版本呢?其实在4.3或以下可以直接用ACTION_GET_CONTENT的,在4.4或以上,官方建议用ACTION_OPEN_DOCUMENT,主要区别是他们返回的Uri.4.3返回的是带文件路径的,而4.4返回的却是content://com.android.providers.media.documents/document/image:3951这样的,没有路径,只有图片编号的uri.可以通过以下方式,处理URI。
参考:Android 4.4从图库选择图片,获取图片路径并裁剪
public static String getPath(final Context context, final Uri uri) {
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
// ExternalStorageProvider
if (isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/" + split[1];
}
// TODO handle non-primary volumes
}
// DownloadsProvider
else if (isDownloadsDocument(uri)) {
final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"), Long.valueOf(id));
return getDataColumn(context, contentUri, null, null);
}
// MediaProvider
else if (isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
Uri contentUri = null;
if ("image".equals(type)) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
} else if ("video".equals(type)) {
contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
} else if ("audio".equals(type)) {
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
}
final String selection = "_id=?";
final String[] selectionArgs = new String[] {
split[1]
};
return getDataColumn(context, contentUri, selection, selectionArgs);
}
}
// MediaStore (and general)
else if ("content".equalsIgnoreCase(uri.getScheme())) {
// Return the remote address
if (isGooglePhotosUri(uri))
return uri.getLastPathSegment();
return getDataColumn(context, uri, null, null);
}
// File
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
public static String getDataColumn(Context context, Uri uri, String selection,
String[] selectionArgs) {
Cursor cursor = null;
final String column = "_data";
final String[] projection = {
column
};
try {
cursor = context.getContentResolver().query(uri, projection, selection, selectionArgs,
null);
if (cursor != null && cursor.moveToFirst()) {
final int index = cursor.getColumnIndexOrThrow(column);
return cursor.getString(index);
}
} finally {
if (cursor != null)
cursor.close();
}
return null;
}
public static boolean isExternalStorageDocument(Uri uri) {
return "com.android.externalstorage.documents".equals(uri.getAuthority());
}
public static boolean isDownloadsDocument(Uri uri) {
return "com.android.providers.downloads.documents".equals(uri.getAuthority());
}
public static boolean isMediaDocument(Uri uri) {
return "com.android.providers.media.documents".equals(uri.getAuthority());
}
public static boolean isGooglePhotosUri(Uri uri) {
return "com.google.android.apps.photos.content".equals(uri.getAuthority());
}
3、使用其它开源组件如PhotoView。
3. android开发如何执行下载图片到指定目录里,然后通过imageview去读取该图片。
1、首先你有一个保存图片的路径 filePath
还有一个现在图片的链接 url
java">StringfilePath="....";
Stringurl="....";
bytes[]b=newbytes[1024];
Filefile=newFile(filePath);
FileOutputStreamfs=newFileOutputStream(file);
InputStreamin=newURL(url);
while(in.read(b)){
fs.wirte(b);
}
Bitmapbitmap=BitmmapFactory.decodeStream(in);
imageView.setBitmapResource()
大概就是这样详细的你自己弄吧
4. Android获取本地图片路径
最好把错误日志 全部贴出来
5. android中如何从数据库获取图片的路径
利用这个URI:content://media/internal/images
下面的链接地址很详细,我就不再这里饶舌了
主要看代码部分的380行的那个Activity
6. 如何获得android assert 里图片的绝对路径
第一种方法:
String path = "file:///android_asset/文件名";
第二种方法:
InputStream abpath = getClass().getResourceAsStream("/assets/文件名");
若要想要转换成String类型
String path = new String(InputStreamToByte(abpath ));
private byte[] InputStreamToByte(InputStream is) throws IOException {
ByteArrayOutputStream bytestream = new ByteArrayOutputStream();
int ch;
while ((ch = is.read()) != -1) {
bytestream.write(ch);
}
byte imgdata[] = bytestream.toByteArray();
bytestream.close();
return imgdata;
}
7. android 怎么获取相册路径
android手机4.2版本之前是一个方法,大于4.2版本又是一个方法。
注意:现在手机市场android版本2015面上半年平均4.4,现在是平均5.0了。
before
你网络一下,都能查到,很简单.
after
private void startPickPhotoActivity() {
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.setType("image/*"); // Or 'image/ jpeg '
startActivityForResult(intent, RESULT_PICK_PHOTO_NORMAL);
}
// 获得图片返回的路径
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (requestCode == RESULT_PICK_PHOTO_NORMAL) {
if (resultCode == RESULT_OK && data != null) {
//选中图片路径
mFileName = MainActivity.getPath(getApplicationContext(),
data.getData());
if ("".equals(mFileName)) {
return;
}
Intent intent = new Intent(this, EditActivity.class);
intent.putExtra("pathName", mFileName);
startActivity(intent);
}
}
}
@TargetApi(Build.VERSION_CODES.KITKAT)
public static String getPath(final Context context, final Uri uri) {
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) {
// ExternalStorageProvider
if (UriUtils.isExternalStorageDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
if ("primary".equalsIgnoreCase(type)) {
return Environment.getExternalStorageDirectory() + "/"
+ split[1];
}
}
// DownloadsProvider
else if (UriUtils.isDownloadsDocument(uri)) {
final String id = DocumentsContract.getDocumentId(uri);
final Uri contentUri = ContentUris.withAppendedId(
Uri.parse("content://downloads/public_downloads"),
Long.valueOf(id));
return UriUtils.getDataColumn(context, contentUri, null, null);
}
// MediaProvider
else if (UriUtils.isMediaDocument(uri)) {
final String docId = DocumentsContract.getDocumentId(uri);
final String[] split = docId.split(":");
final String type = split[0];
Uri contentUri = null;
if ("image".equals(type)) {
contentUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
} else if ("video".equals(type)) {
contentUri = MediaStore.Video.Media.EXTERNAL_CONTENT_URI;
} else if ("audio".equals(type)) {
contentUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
}
final String selection = MediaColumns._ID + "=?";
final String[] selectionArgs = new String[] { split[1] };
return UriUtils.getDataColumn(context, contentUri, selection,
selectionArgs);
}
}
// MediaStore (and general)
else if ("content".equalsIgnoreCase(uri.getScheme())) {
// Return the remote address
if (UriUtils.isGooglePhotosUri(uri))
return uri.getLastPathSegment();
return UriUtils.getDataColumn(context, uri, null, null);
}
// File
else if ("file".equalsIgnoreCase(uri.getScheme())) {
return uri.getPath();
}
return null;
}
8. android怎么从网页中获取到全部的图片路径
那你查看一下这个网页的前台代码,里面有一个网址,这个不知道里面是否可以。不过大部分都是网站要有接口,之后就可以下载到
9. 安卓GrideView获取相册图片路径并显示图片,
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_CODE) {
if (resultCode == RESULT_OK) {
//获取onActivityResult返回的data值,并赋值给mResults
mResults = data.getStringArrayListExtra(SelectorSettings.SELECTOR_RESULTS);
//断言返回的结果不为空
assert mResults != null;
// show results in textview
//创建一个StringBuilder并使用sb来接收
StringBuilder sb = new StringBuilder();
//字符串拼接,format方法是当前选择了几张图片,mResults.size()的结果是选择了几张图片,然后使用返回值赋值到%d,然后添加换行符
sb.append(String.format("Totally %d images selected:", mResults.size())).append("\n");
for (String result : mResults) {
//foreach遍历结果集,循环添加到sb中(字符串拼接到sb上)
sb.append(result).append("\n");
}
//把结果在TextView上显示出来
sStest.setText(sb.toString());
}
}
super.onActivityResult(requestCode, resultCode, data);
}
10. android小程序,从数据库中读取图片路径然后进行显示,不是背景图片
一般放在Sdcard根目录下有个系统Picture文件夹,可以先判断这个文件夹是否存在再放到里面。要么就创建一个属于自己程序的专有目录,大多的程序都会这么做(包括QQ,sina微博)然后存放一些关于本程序的数据,图片也可以放这里面,下次就可以直接从这里显示,也不用再到网上去下载了。