當前位置:首頁 » 安卓系統 » android讀取sd卡圖片

android讀取sd卡圖片

發布時間: 2022-06-23 11:06:13

A. 安卓如何讀取SD卡下某個文件夾的所有圖片

第一步:創建一個存儲空間 List<Bitmap> bList;
第二步: 遍歷用戶點擊的文件夾 查找後綴為jpg,png的圖片(這個網路 好多遍歷文件夾下的文件在根據文件後綴找圖片)
第三步: Bitmap b = BitmapFactory.decode(path);(path為路徑)
讀取以後就是 bList.add(b);
第四部:顯示 img.setBitmap(bList.get(i)); (沒有考慮OOM、內存溢出問題 請自行解決)

B. 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。

C. 安卓手機如何讀取外置sd卡

系統會自動讀取插入的外置sd卡里的文件內容,你打開手機的文件管理器,在文件類型欄里點任意一種類型,比如視頻,你就能看到sd卡里所有的視頻文件了。

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

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

java"><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卡不存在!");
}

}

}

E. 求助,安卓布卡漫畫怎麼能讀取SD卡上的本地漫畫

具體步驟如下:

1、在打開的布卡app首頁,找到界面右下角的星型圖標,並點擊打開。


F. android中如何從SDcard中讀取圖片文件

用路徑的方法尋找,BitmapFactory.decodeFile(路徑)返回值是一個Bitmap,比如sdcard的根目錄有個test.png,那麼可以這么用BitmapFactory.decodeFile("mnt/sdcard/test.png")。然後ImageView之類的圖片控制項,可以用setImageBitmap(Bitmap)之類的方法,就可以使用sdcard中的圖片了,
不過好像需要加一個許可權的,就是在androidmanifest.xml中添加。
你說的讀取系統一個小圖標R.drawable.ic_menu_camera,其實也是用路徑尋找的,不過被google封裝起來了,用映射的方法尋找到相關路徑下的文件。 比如R.drawable 就知道是res下面drawable-XX(根據系統配置,尋找不同文件夾下的圖片)文件下的圖片,比如R.layout 就是res下面layout下面的文件。SimpleAdapter可以算是一個測試用的設配器,最好自己嘗試寫設配器,自由空間比較大。

G. 安卓開發 如何獲取sd卡中的某個文件夾的圖片個數

packagecom.example.s_27;

importjava.io.File;

importandroid.app.Activity;
importandroid.os.Bundle;

{

publicstaticint i =0;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
newThread(){
publicvoidrun(){
Stringpath="/sdcard/androidesk/";
getFiles(path);

System.out.println(path+"文件夾下面共有"+i+"張圖片文件");
};
}.start();
}

privatevoidgetFiles(Stringstring){
//TODOAuto-generatedmethodstub
Filefile=newFile(string);
File[]files=file.listFiles();
for(intj=0;j<files.length;j++){
Stringname=files[j].getName();
if(files[j].isDirectory()){
StringdirPath=files[j].toString().toLowerCase();
System.out.println(dirPath);
getFiles(dirPath+"/");
}elseif(files[j].isFile()&name.endsWith(".jpg")||name.endsWith(".png")||name.endsWith(".bmp")||name.endsWith(".gif")||name.endsWith(".jpeg")){
System.out.println("FileName==="+files[j].getName());
i++;
}
}

}

}


清單文件manifest 節點下面添加 讀取許可權

<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>

H. 在手機上怎麼讀取SD卡上的內容

你手機是什麼系統?如果是現在主流的android系統的話,可以去電子市場下個軟體「文件管理器」,安裝之後就可以直接讀取sd卡上的內容了

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

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

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

熱點內容
純凈的安卓系統哪個版本最流暢 發布:2024-05-01 07:05:50 瀏覽:785
光纖和密碼忘記了怎麼辦 發布:2024-05-01 06:57:23 瀏覽:781
搭建伺服器的路由器 發布:2024-05-01 06:51:12 瀏覽:583
oppo手機如何設置加密碼 發布:2024-05-01 06:51:11 瀏覽:64
編程語言收入 發布:2024-05-01 06:42:55 瀏覽:756
上海網路雲存儲功能 發布:2024-05-01 06:42:45 瀏覽:831
源碼直通車 發布:2024-05-01 06:39:24 瀏覽:708
ug設置伺服器地址 發布:2024-05-01 06:26:47 瀏覽:865
離散數學關系矩陣演算法 發布:2024-05-01 05:53:48 瀏覽:401
androidgithub開源項目 發布:2024-05-01 05:30:13 瀏覽:618