圖片畫(huà)廊:ImageGallery Intent傳圖實(shí)戰(zhàn)指南)
如何用最少的代碼啟動(dòng)圖片畫(huà)廊ImageGallery Intent傳圖實(shí)戰(zhàn)指南【免費(fèi)下載鏈接】ImageGalleryA gallery used to host an array of images項(xiàng)目地址: https://gitcode.com/gh_mirrors/im/ImageGallery想在 Android 應(yīng)用里展示一組圖片不用自己寫(xiě) RecyclerView 網(wǎng)格也不用造全屏輪播的輪子。ImageGallery是一個(gè)輕量級(jí) Android 圖片畫(huà)廊庫(kù)——你只需幾行 Intent 傳圖代碼就能啟動(dòng)一個(gè)縮略圖網(wǎng)格 全屏放大瀏覽的完整畫(huà)廊頁(yè)面。本文手把手帶你用最少代碼完成集成。? ImageGallery 能做什么在動(dòng)手之前先了解這個(gè)畫(huà)廊庫(kù)提供的能力網(wǎng)格縮略圖列表豎屏 3 列、橫屏 4 列自適應(yīng)布局全屏瀏覽點(diǎn)擊縮略圖進(jìn)入全屏頁(yè)支持左右滑動(dòng)切換、頂部顯示頁(yè)碼如 9/30雙指縮放全屏圖片支持 pinch-to-zoom 手勢(shì)放大細(xì)節(jié)Palette 動(dòng)態(tài)背景色根據(jù)圖片主色調(diào)自動(dòng)為全屏頁(yè)設(shè)置背景色上面就是傳入一組 Unsplash 圖片后自動(dòng)生成的畫(huà)廊網(wǎng)格頁(yè)頂部工具欄標(biāo)題也來(lái)自你傳入的標(biāo)題參數(shù)。 快速集成獲取 ImageGallery 庫(kù)先克隆倉(cāng)庫(kù)到本地查看示例工程git clone https://gitcode.com/gh_mirrors/im/ImageGallery倉(cāng)庫(kù)分為兩部分library/是畫(huà)廊核心庫(kù)sample/是可直接運(yùn)行的示例工程。在build.gradle中添加依賴(lài)compile com.github.lawloretienne:imagegallery:0.1.0如果你本地沒(méi)有網(wǎng)絡(luò)環(huán)境也可以直接把library/模塊作為本地模塊引入項(xiàng)目。 核心實(shí)戰(zhàn)7 行 Intent 代碼啟動(dòng)畫(huà)廊這是全文最關(guān)鍵的步驟。在任意 Activity 中用下面的代碼就能啟動(dòng)畫(huà)廊Intent intent new Intent(MainActivity.this, ImageGalleryActivity.class); Bundle bundle new Bundle(); bundle.putStringArrayList(ImageGalleryActivity.KEY_IMAGES, new ArrayList(Arrays.asList(imageUrlList))); bundle.putString(ImageGalleryActivity.KEY_TITLE, Unsplash Images); intent.putExtras(bundle); startActivity(intent);只有 2 個(gè)傳圖參數(shù)含義一目了然常量類(lèi)型作用KEY_IMAGESArrayListString圖片 URL 列表決定網(wǎng)格內(nèi)容KEY_TITLEString頂部工具欄顯示的標(biāo)題這兩個(gè)常量定義在 ImageGalleryActivity.java 中畫(huà)廊頁(yè)啟動(dòng)后會(huì)自動(dòng)從 Intent 的 Bundle 里取出它們并渲染網(wǎng)格。 注意圖片加載需要你提供實(shí)現(xiàn)。完整可運(yùn)行的寫(xiě)法見(jiàn)示例工程 MainActivity.java它用 Picasso 加載圖片并實(shí)現(xiàn)了ImageThumbnailLoader縮略圖和FullScreenImageLoader全屏圖兩個(gè)接口。 全屏傳圖與頁(yè)碼自動(dòng)完成零額外代碼點(diǎn)擊縮略圖后庫(kù)會(huì)自動(dòng)把整組圖片 點(diǎn)擊位置傳給全屏頁(yè)源碼在 FullScreenImageGalleryActivity.javaKEY_IMAGES完整圖片列表KEY_POSITION當(dāng)前點(diǎn)擊圖片的下標(biāo)所以你不需要為全屏頁(yè)寫(xiě)任何 Intent 代碼滑動(dòng)切換、頁(yè)碼顯示、背景色提取全部開(kāi)箱即用。右側(cè)上下兩塊紅色區(qū)域正是 Palette 提取的圖片主色調(diào)背景全屏滑動(dòng)時(shí)會(huì)自動(dòng)切換。?? 別忘了在 AndroidManifest 中聲明 Activity如果你要直接使用ImageGalleryActivity必須在你自己的AndroidManifest.xml中聲明它庫(kù)的清單里只預(yù)聲明了全屏頁(yè)可參考 AndroidManifest.xmlactivity android:namecom.etiennelawlor.imagegallery.library.activities.ImageGalleryActivity android:configChangesorientation|keyboardHidden|screenSize android:label android:themestyle/ImageGalleryTheme /configChanges一行很關(guān)鍵——它保證旋轉(zhuǎn)屏幕時(shí)頁(yè)面不重建網(wǎng)格能自適應(yīng)切換 3 列/4 列。 進(jìn)階用 Fragment 嵌入自己的頁(yè)面不想跳轉(zhuǎn)獨(dú)立頁(yè)面可以把畫(huà)廊作為一個(gè) Fragment 嵌進(jìn)自己的 Activity。ImageGalleryFragment提供newInstance(Bundle)工廠方法傳圖方式和 Activity 完全一致Bundle bundle new Bundle(); bundle.putStringArrayList(ImageGalleryFragment.KEY_IMAGES, imageUrlList); bundle.putString(ImageGalleryFragment.KEY_TITLE, My Gallery); ImageGalleryFragment fragment ImageGalleryFragment.newInstance(bundle);注意 Fragment 版本同樣需要你注冊(cè)縮略圖加載器ImageGalleryFragment.setImageThumbnailLoader(this);完整演示見(jiàn)示例工程的 HostImageGalleryActivity.java。 關(guān)鍵文件索引文件說(shuō)明MainActivity.java完整傳圖 圖片加載示例ImageGalleryActivity.java網(wǎng)格畫(huà)廊頁(yè)定義 KEY_IMAGES / KEY_TITLEFullScreenImageGalleryActivity.java全屏瀏覽頁(yè)定義 KEY_POSITIONImageGalleryFragment.javaFragment 嵌入方式arrays.xml示例圖片 URL 數(shù)組? 小結(jié)回顧一下最少代碼路徑聲明 Activity → 傳 KEY_IMAGES 和 KEY_TITLE → startActivity三步即可得到一個(gè)帶全屏縮放和調(diào)色板背景色的圖片畫(huà)廊。整個(gè)流程你只需寫(xiě)不到 10 行業(yè)務(wù)代碼剩下的網(wǎng)格、輪播、縮放交給 ImageGallery 處理即可?!久赓M(fèi)下載鏈接】ImageGalleryA gallery used to host an array of images項(xiàng)目地址: https://gitcode.com/gh_mirrors/im/ImageGallery創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考