當前位置:首頁 » 安卓系統 » 安卓編輯時候如何獲取圖片路徑

安卓編輯時候如何獲取圖片路徑

發布時間: 2022-10-10 02:32:38

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了。

  1. before

    你網路一下,都能查到,很簡單.

  2. 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微博)然後存放一些關於本程序的數據,圖片也可以放這裡面,下次就可以直接從這里顯示,也不用再到網上去下載了。

熱點內容
如何申請i7伺服器地址 發布:2025-01-23 04:42:15 瀏覽:845
瀏覽器內核源碼 發布:2025-01-23 04:41:34 瀏覽:659
精英版繽智少了些什麼配置 發布:2025-01-23 04:41:30 瀏覽:356
編寫c編譯器 發布:2025-01-23 04:41:30 瀏覽:968
可以解壓war包的編譯軟體 發布:2025-01-23 04:38:28 瀏覽:986
vivo手機有編譯功能嗎 發布:2025-01-23 04:31:57 瀏覽:568
自己架設雲手機伺服器 發布:2025-01-23 04:31:17 瀏覽:949
gcc命令行編譯的方法 發布:2025-01-23 04:30:31 瀏覽:397
我的雲伺服器地址近期價格 發布:2025-01-23 04:29:05 瀏覽:625
js預覽上傳圖片 發布:2025-01-23 04:28:54 瀏覽:407