導航:首頁 > 操作系統 > android顯示sd卡圖片路徑

android顯示sd卡圖片路徑

發布時間:2022-10-21 15:47:56

android 在知道文件路徑以及文件名稱讀取SD卡上的圖片該怎麼做

不知道你是想讀取出來幹嘛,
但是讀取sd卡的圖片文件第一步要獲取圖片的絕對路徑,
Environment.getExternalStorageDirectory().toString()就是獲取sd卡的絕對路徑,由於android各個版本不同,返回的路徑也可能不相同,
String imgFilePath = Environment.getExternalStorageDirectory().toString()
+ 「/DCIM/device.png
得到圖片的絕對路徑以後,可以通過流讀取這個文件,如果你只是想顯示到界面的話,那可以使用BitmapFactory來構建一個Bitmap對象,這個對象是可以直接應用於imageView的

創建方法BitmapFactory.decodeFile("圖片路徑")

⑵ 有關於Android開發的,獲取了sd卡的圖片的路徑後,然後怎樣將其顯示到listview控制項里啊

BitmapFactory.decodeStream(is)
BitmapFactory.decodeStream(fis, null, o2)
BitmapFactory.decodeFile(localPath)
前兩個是用的輸入流,第三個用的是String型的地址。

⑶ 如何獲取android手機SD卡上的所有圖片路徑

如果用系統的API可以用MediaProvider來獲取,不過這個比較慢,可以自己實現掃描SD卡,多線程掃描或遞歸掃描

⑷ android 打開sd卡文件夾,並獲得選中文件的路徑怎麼實現

一個圖片上傳功能需要提供上傳圖片在SD卡中的路徑,總結了網上的一些列子,修改了一下,代碼很簡單,感興趣的朋友可以參考下哈,希望對大家有所幫助 最近在做一個圖片上傳的功能,需要提供上傳圖片在SD卡中的路徑,在網上看了些例子,改改調試成功,代碼很簡單。其布局文件如下: 復制代碼 代碼如下: <?xml version="1/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <Button android:id="@+id/select" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="請選擇SD卡中的圖片" /> </LinearLayout> java文件如下: 復制代碼 代碼如下: package com.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.util.Log; import android.view.View; import android.widget.Button; public class QueryPictureUrlActivity extends Activity { private Button select; private final String IMAGE_TYPE = "image/*"; private final int IMAGE_CODE = 0; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); select = (Button)findViewById(R.id.select); select.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { Intent getAlbum = new Intent(Intent.ACTION_GET_CONTENT); getAlbum.setType(IMAGE_TYPE); startActivityForResult(getAlbum, IMAGE_CODE); } }); } 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; ContentResolver resolver = getContentResolver(); if (requestCode == IMAGE_CODE) { try { Uri originalUri = data.getData(); //獲得圖片的uri bm = MediaStore.Images.Media.getBitmap(resolver, originalUri); //顯得到bitmap圖片 // 這里開始的第二部分,獲取圖片的路徑: String[] proj = {MediaStore.Images.Media.DATA}; 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); Log.e("Lostinai",path); }catch (IOException e) { Log.e("Lostinai",e.toString()); } } } } 最後別忘記了加上許可權啊 復制代碼 代碼如下: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

⑸ android imageview讀取sd卡指定路徑的圖片

Environment.getExternalStorageDirectory()獲取SD卡路徑,然後再添加你的路徑;
注意添加SD卡訪問許可權

⑹ 安卓手機sd卡的路徑在哪

【手機存儲路徑】描述方法:

方法一:/storage/sdcard0/所在文件夾名/文件名

方法二:/mnt/sdcard/所在文件夾名/文件名

【擴展SD卡路徑】描述方法:

方法一:/storage/sdcard1/所在文件夾名/文件名

方法二:/mnt/sdcard2/所在文件夾名/文件名

有的手機存儲支持兩類,一個是手機存儲,另一個是擴展SD卡(打開你的手機文件管理器,就能看到你的手機支持哪些了)『

有些手機因為手機存儲容量達到16G,32G,甚至更高等等,就不支持擴展SD卡(有指甲蓋大小的,需要卡槽存放的小卡)。

拓展資料;

SD存儲卡是一種基於半導體快閃記憶器的新一代記憶設備,由於它體積小、數據傳輸速度快、可熱插拔等優良的特性,被廣泛地於攜帶型裝置上使用,例如數碼相機、個人數碼助理(外語縮寫PDA)和多媒體播放器等。

SD卡應用於以下的手提數碼裝置:

數碼相機

儲存相片及短片

數碼攝錄機儲存相片及短片

個人數碼助理(PDA)儲存各類資料

手提電話儲存相片、鈴聲、音樂、短片等資料

多媒體播放器

SD卡多用於MP3隨身聽、數碼攝像機、數碼相機等,也有用於筆記本電腦上。SD卡在2013年的發展很快,已經開始威脅到CF卡的市場份額了。不過注意的是,在某些產品例如手機上,SD卡和MMC卡是不能兼容的。2013年的SD卡容量由8MB到128GB不等。

參考鏈接;網路-SD卡

⑺ android如何讀取sd卡的圖片並顯示

首先你要在AndroidManifest.xml申請讀取sdcard的許可權

<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/><!--向SDCard寫入數據許可權-->

關鍵代碼:

packagecom.sdcardread;

importjava.io.File;

importandroid.os.Bundle;
importandroid.os.Environment;
importandroid.widget.ImageView;
importandroid.widget.LinearLayout;
importandroid.widget.TextView;
importandroid.app.Activity;
importandroid.graphics.Bitmap;
importandroid.graphics.BitmapFactory;

{
privateTextViewtextView1;
;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView1=(TextView)findViewById(R.id.textView1);
linearLayout1=(LinearLayout)findViewById(R.id.linearLayout1);
booleanisSdCardExist=Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED);//判斷sdcard是否存在
if(isSdCardExist){
Stringsdpath=Environment.getExternalStorageDirectory()
.getAbsolutePath();//獲取sdcard的根路徑
textView1.setText("sd卡是存在的。以下是sdcard下的img25.jpg!");
Stringfilepath=sdpath+File.separator+"img25.jpg";
Filefile=newFile(filepath);
ImageViewimageView=newImageView(this);//創建一個imageView對象
if(file.exists()){
Bitmapbm=BitmapFactory.decodeFile(filepath);
//將圖片顯示到ImageView中
imageView.setImageBitmap(bm);
linearLayout1.addView(imageView);
}
}else{
textView1.setText("sd卡不存在!");
}

}

}

⑻ Android手機讀取U盤(SD卡)照片

近來無事,突發奇想,自己研究下怎樣通過手機來讀取旅遊時拍的照片。

因為本身各大手機上自己就可以通過OTA功能讀取U盤照片到手機中,但是還是想自己寫個DEMO看看,發現一個問題,就是目前fat32格式的協議是免費的。其他格式收費。

項目主要是參考了 https://github.com/LuoChen-Hao/BlackHaoUtil  這個項目來的,只是改了支持androidx 項目讀卡器的功能參考了 https://github.com/magnusja/libaums  這個庫來的,如果想更多關注讀卡器功能,請去了解這個庫,目前只支持fat32格式的存儲卡。

目前我這邊也只是研究了一下,做了個基本demo

github地址:https://github.com/shenqinwei/OTG_androidx

⑼ 如何正確獲得Android內外SD卡路徑

/**
* 獲取手機自身內存路徑
*
*/
public static String getPhoneCardPath(){
return Environment.getDataDirectory().getPath();
}
/**
* 獲取sd卡路徑
* 雙sd卡時,根據」設置「裡面的數據存儲位置選擇,獲得的是內置sd卡或外置sd卡
* @return
*/
public static String getNormalSDCardPath(){
return Environment.getExternalStorageDirectory().getPath();
}
/**
* 獲取sd卡路徑
* 雙sd卡時,獲得的是外置sd卡
* @return
*/
public static String getSDCardPath() {
String cmd = "cat /proc/mounts";
Runtime run = Runtime.getRuntime();// 返回與當前 Java 應用程序相關的運行時對象
BufferedInputStream in=null;
BufferedReader inBr=null;
try {
Process p = run.exec(cmd);// 啟動另一個進程來執行命令
in = new BufferedInputStream(p.getInputStream());
inBr = new BufferedReader(new InputStreamReader(in));

String lineStr;
while ((lineStr = inBr.readLine()) != null) {
// 獲得命令執行後在控制台的輸出信息
Log.i("CommonUtil:getSDCardPath", lineStr);
if (lineStr.contains("sdcard")
&& lineStr.contains(".android_secure")) {
String[] strArray = lineStr.split(" ");
if (strArray != null && strArray.length >= 5) {
String result = strArray[1].replace("/.android_secure",
"");
return result;
}
}
// 檢查命令是否執行失敗。
if (p.waitFor() != 0 && p.exitValue() == 1) {
// p.exitValue()==0表示正常結束,1:非正常結束
Log.e("CommonUtil:getSDCardPath", "命令執行失敗!");
}
}
} catch (Exception e) {
Log.e("CommonUtil:getSDCardPath", e.toString());
//return Environment.getExternalStorageDirectory().getPath();
}finally{
try {
if(in!=null){
in.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
if(inBr!=null){
inBr.close();
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return Environment.getExternalStorageDirectory().getPath();
}
//查看所有的sd路徑
public String getSDCardPathEx(){
String mount = new String();
try {
Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("mount");
InputStream is = proc.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
String line;
BufferedReader br = new BufferedReader(isr);
while ((line = br.readLine()) != null) {
if (line.contains("secure")) continue;
if (line.contains("asec")) continue;

if (line.contains("fat")) {
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
mount = mount.concat("*" + columns[1] + "\n");
}
} else if (line.contains("fuse")) {
String columns[] = line.split(" ");
if (columns != null && columns.length > 1) {
mount = mount.concat(columns[1] + "\n");
}
}
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return mount;
}
//獲取當前路徑,可用空間
public static long getAvailableSize(String path){
try{
File base = new File(path);
StatFs stat = new StatFs(base.getPath());
long nAvailableCount = stat.getBlockSize() * ((long) stat.getAvailableBlocks());
return nAvailableCount;
}catch(Exception e){
e.printStackTrace();
}
return 0;
}

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

閱讀全文

與android顯示sd卡圖片路徑相關的資料

熱點內容
小鍵盤命令 瀏覽:191
單片機c語言返回主程序 瀏覽:814
dockerpythonweb 瀏覽:969
程序員演算法有多強 瀏覽:715
pythonworkbook模塊 瀏覽:244
什麼app能查醫生 瀏覽:175
輕量級的編程語言 瀏覽:338
程序員那麼可愛生孩子 瀏覽:432
後綴him3加密文件是什麼軟體 瀏覽:984
堅果隱藏app為什麼要140版本才能用 瀏覽:313
淘寶dns伺服器地址 瀏覽:259
領英轉型app哪個好用 瀏覽:943
壓縮軟體的圖標 瀏覽:97
賣鞋哪個app是真的 瀏覽:469
python迭代是累計嗎 瀏覽:419
程序員哪些平台接私活 瀏覽:175
單片機充電電路原理圖 瀏覽:1000
android軟體雲伺服器地址 瀏覽:213
如何用伺服器做內網穿透服務 瀏覽:401
oracle加密表空間重置密碼 瀏覽:302