Android 實(shí)現(xiàn)獲取手機(jī)里面的所有圖片詳解及實(shí)例
Android 實(shí)現(xiàn)獲取手機(jī)里面的所有圖片詳解及實(shí)例
實(shí)現(xiàn)代碼:
public class MainActivity extends Activity { //查看圖片按鈕 private Button look; private Button add; //顯示圖片名稱的list ListView show_list; ArrayList names = null; ArrayList descs= null; ArrayList fileNames = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); look = (Button) findViewById(R.id.look); add = (Button) findViewById(R.id.add); show_list = (ListView) findViewById(R.id.show_list); look.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { names = new ArrayList(); descs = new ArrayList(); fileNames = new ArrayList(); Cursor cursor = getContentResolver().query( MediaStore.Images.Media.EXTERNAL_CONTENT_URI, null, null, null, null); while (cursor.moveToNext()) { //獲取圖片的名稱 String name = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DISPLAY_NAME)); //獲取圖片的生成日期 byte[] data = cursor.getBlob(cursor.getColumnIndex(MediaStore.Images.Media.DATA)); //獲取圖片的詳細(xì)信息 String desc = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Media.DESCRIPTION)); names.add(name); descs.add(desc); fileNames.add(new String(data, 0, data.length - 1)); } List<Map<String, Object>> listItems = new ArrayList<>(); for (int i = 0; i < names.size(); i++) { Map<String, Object> map = new HashMap<>(); map.put("name", names.get(i)); map.put("desc", descs.get(i)); listItems.add(map); } //設(shè)置adapter SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, listItems, R.layout.line, new String[]{"name", "desc"}, new int[]{R.id.name, R.id.desc}); show_list.setAdapter(adapter); } }); ///list的點(diǎn)擊事件 show_list.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { View viewDiag = getLayoutInflater().inflate(R.layout.view,null); ImageView image = (ImageView)viewDiag.findViewById(R.id.image); image.setImageBitmap(BitmapFactory.decodeFile((String) fileNames.get(i))); new AlertDialog.Builder(MainActivity.this).setView(viewDiag) .setPositiveButton("確定",null).show(); } }); } }
XML:
<!--獲取手機(jī)存儲(chǔ)卡權(quán)限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
Kotlin中?和!!的區(qū)別詳細(xì)對(duì)比
這篇文章主要給大家介紹了關(guān)于Kotlin中?和!!區(qū)別的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05android 自定義TabActivity的實(shí)例方法
系統(tǒng)自帶的TabActivity的效果不甚理想。開(kāi)發(fā)中對(duì)TabActivity自定義可能有兩種:第一種:改變TAB行的位置,如放到頁(yè)面下方。第二種:對(duì)TabHost圖片的自定義2013-11-11Kotlin類(lèi)的繼承實(shí)現(xiàn)詳細(xì)介紹
這篇文章主要介紹了Kotlin類(lèi)的繼承,在Java中類(lèi)的繼承默認(rèn)是繼承父類(lèi)的方法和參數(shù)的,但是在kotlin中默認(rèn)是不繼承的,那么我們接下來(lái)來(lái)驗(yàn)證2022-09-09Android控件之ProgressBar用法實(shí)例分析
這篇文章主要介紹了Android控件之ProgressBar用法,以一個(gè)完整實(shí)例形式較為詳細(xì)的分析了ProgressBar控件操作進(jìn)度顯示的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09Android使用CountDownTimer模擬短信驗(yàn)證倒計(jì)時(shí)
這篇文章主要為大家詳細(xì)介紹了Android使用CountDownTimer模擬短信驗(yàn)證倒計(jì)時(shí),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07Android抽屜布局DrawerLayout的簡(jiǎn)單使用
這篇文章主要為大家詳細(xì)介紹了Android抽屜布局DrawerLayout的簡(jiǎn)單使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06Android實(shí)現(xiàn)基于滑動(dòng)的SQLite數(shù)據(jù)分頁(yè)加載技術(shù)(附demo源碼下載)
這篇文章主要介紹了Android實(shí)現(xiàn)基于滑動(dòng)的SQLite數(shù)據(jù)分頁(yè)加載技術(shù),涉及Android針對(duì)SQLite數(shù)據(jù)的讀取及查詢結(jié)果的分頁(yè)顯示功能相關(guān)實(shí)現(xiàn)技巧,末尾還附帶demo源碼供讀者下載參考,需要的朋友可以參考下2016-07-07