Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 淺談談Android 圖片選擇器

淺談談Android 圖片選擇器

編輯:關於Android編程

ImageSelector 簡介

Android自定義相冊,實現了拍照、圖片選擇(單選/多選)、ImageLoader無綁定 任由開發者選擇

https://github.com/YancyYe/ImageSelector

Demo

Download Apk

更新內容

UI重改
所有功能可配置
解決OOM情況
圖片手動選擇
支持漢語和英語

截圖展示

使用說明

步驟一:

通過Gradle抓取

dependencies {
 compile 'com.yancy.imageselector:imageselector:1.1.0'
}

步驟二:

在 AndroidManifest.xml 中 添加 如下權限

<!-- 從sdcard中讀取數據的權限 -->
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<!-- 往sdcard中寫入數據的權限 -->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

步驟三:

創建 圖片加載器 (其中可以按照 喜好 使用不同的 第三方圖片加載框架 以下為Glide示例)

public class GlideLoader implements com.yancy.imageselector.ImageLoader {

 @Override
 public void displayImage(Context context, String path, ImageView imageView) {
  Glide.with(context)
    .load(path)
    .placeholder(com.yancy.imageselector.R.mipmap.imageselector_photo)
    .centerCrop()
    .into(imageView);
 }

}

配置ImageSelector

 ImageConfig imageConfig
  = new ImageConfig.Builder(MainActivity.this , new GlideLoader())
  // 如果在 4.4 以上,則修改狀態欄顏色 (默認黑色)
  .steepToolBarColor(getResources().getColor(R.color.blue))
  // 標題的背景顏色 (默認黑色)
  .titleBgColor(getResources().getColor(R.color.blue))
  // 提交按鈕字體的顏色 (默認白色)
  .titleSubmitTextColor(getResources().getColor(R.color.white))
  // 標題顏色 (默認白色)
  .titleTextColor(getResources().getColor(R.color.white))
  // 開啟多選 (默認為多選) (單選 為 singleSelect)
  .mutiSelect()
  // 多選時的最大數量 (默認 9 張)
  .mutiSelectMaxSize(9)
  // 已選擇的圖片路徑
  .pathList(path)
  // 拍照後存放的圖片路徑(默認 /temp/picture)
  .filePath("/ImageSelector/Pictures")
  // 開啟拍照功能 (默認關閉)
  .showCamera()
  .build();


ImageSelector.open(imageConfig); // 開啟圖片選擇器

在  onActivityResult 中獲取選中的照片路徑 數組 :

 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  if (requestCode == ImageSelector.IMAGE_REQUEST_CODE && resultCode == RESULT_OK && data != null) {

   // Get Image Path List
   List<String> pathList = data.getStringArrayListExtra(ImageSelectorActivity.EXTRA_RESULT);

   for (String path : pathList) {
    Log.i("ImagePathList", path);
   }

  }
 }

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved