1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/zfproject-Android_Muti_Img_Select

Клонировать/Скачать
README_zh.md 6.8 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 15.03.2025 08:45 e2a50b0

MultiImageSelector

Множественный выбор изображений, реализованный как в WeChat. Поддерживает одиночный и множественный режимы выбора.

Английская версия документации

Скриншоты

Пример 1 Выбор 1 Выбор 2 Выбор 3


Запуск DEMO

./gradlew installDebug

Быстрый старт

  • Шаг 0 Добавьте модуль multi-image-selector в качестве зависимости вашего проекта.

  • Шаг 1 Добавьте разрешение android.permission.READ_EXTERNAL_STORAGE в вашем файле AndroidManifest.xml. Не забудьте также объявить Activity MultiImageSelectorActivity в этом же файле.

<activity
    android:configChanges="orientation|screenSize"
    android:name="me.nereo.multi_image_selector.MultiImageSelectorActivity" />
  • Шаг 2 Вызовите метод в коде, например:
Intent intent = new Intent(mContext, MultiImageSelectorActivity.class);

// Отображает ли вызов камеры
intent.putExtra(MultiImageSelectorActivity.EXTRA_SHOW_CAMERA, true);

// Максимальное количество выбранных изображений
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_COUNT, 9);

// Устанавливаем режим (поддерживает одиночный выбор / MultiImageSelectorActivity.MODE_SINGLE или множественный выбор / MultiImageSelectorActivity.MODE_MULTI)
intent.putExtra(MultiImageSelectorActivity.EXTRA_SELECT_MODE, MultiImageSelectorActivity.MODE_MULTI);

startActivityForResult(intent, REQUEST_IMAGE);
```* Шаг 3
Получите результат в методе `onActivityResult`. Например:
```java
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_IMAGE) {
        if (resultCode == RESULT_OK) {
            // Получаете список выбранных изображений
            List<String> пути = data.getStringArrayListExtra(MultiImageSelectorActivity.EXTRA_RESULT);
            // Обрабатываете свою логику...
        }
    }
}
```* Шаг 4
Нет шага 4, всё готово! :)

-------------------### Пользовательская отрисовка
* Пользовательская активность
```java
class CustomerActivity extends Activity implements MultiImageSelectorFragment.Callback{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// Ваш логика...
		Bundle bundle = new Bundle();
		bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_COUNT, mDefaultCount);
		bundle.putInt(MultiImageSelectorFragment.EXTRA_SELECT_MODE, mode);
		bundle.putBoolean(MultiImageSelectorFragment.EXTRA_SHOW_CAMERA, isShow);
		// Добавление основного фрагмента в активность
		getSupportFragmentManager().beginTransaction()
				.add(R.id.image_grid, Fragment.instantiate(this, MultiImageSelectorFragment.class.getName(), bundle))
				.commit();
	}

	@Override
	public void onSingleImageSelected(String path) {
		// Когда режим выбора установлен как одиночный/MODE_SINGLE, этот метод получает данные от фрагмента
	}
}
    @Override
    public void onImageSelected(String path) {
        // Изображение выбрано, здесь можно настроить поведение Actionbar
    }

    @Override
    public void onImageUnselected(String path) {
        // Изображение отмечено как незначительное, здесь можно настроить поведение Actionbar
    }

    @Override
    public void onCameraShot(File imageFile) {
        // При использовании камеры, после съемки возвращается файл фотографии
    }
}

Обновление

  • 2015-5-5

    1. Исправлено. Некоторые изображения не отображались. (Проблема найдена пользователями sd6352051, larry).
    2. Исправлено. ListPopupWindow не заполнялся родительским контролем.
    3. Добавлено. Эффект маскировки при выборе изображения.* 2015-4-16
    4. Исправлено. При повороте устройства программа падала. (Проблема найдена пользователем @Leminity).
    5. Исправлено. Ошибочное расположение PopupListView для папок. (Проблема найдена пользователем @Slock).
    6. Изменено. Пример скриншотов программы.
    7. Изменено. Файл README.
  • 2015-4-9

    1. Исправлено. При установке EXTRA_SHOW_CAMERA равным true, клик по первому элементу приводил к ошибкам.
    2. Добавлено. Поддержка начальной настройки выбора изображений.

Благодарность

  • square-picasso мощная библиотека для загрузки и кэширования изображений для Android

Лицензия

The MIT License (MIT)

Copyright (c) 2015 Nereo

Разрешается бесплатно использовать, копировать, модифицировать, объединять, публиковать, распространять, передавать по лицензии и продавать копии данного программного обеспечения и связанных с ним документов («Программное обеспечение»), а также предоставлять лицам, которым это Программное обеспечение было предоставлено, право делать то же самое, при условии выполнения следующих условий:

Вышеупомянутая надпись об авторском праве и данное разрешение должны быть включены во все копии или значительные части Программного обеспечения.


Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/zfproject-Android_Muti_Img_Select.git
git@api.gitlife.ru:oschina-mirror/zfproject-Android_Muti_Img_Select.git
oschina-mirror
zfproject-Android_Muti_Img_Select
zfproject-Android_Muti_Img_Select
master