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

OSCHINA-MIRROR/dongni_faith-ImagePicker

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

ImagePicker

Android-приложение для создания собственного фотоальбома, полностью имитирующего интерфейс WeChat. Поддерживает функции съёмки, выбора (одиночного и множественного), обрезки, поворота и т. д.

Из-за ограниченности личного времени проект больше не поддерживается

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

Этот проект основан на:

Вы можете использовать исходный код. Также приглашаем всех скачать и попробовать этот проект. Если у вас возникнут какие-либо проблемы во время использования, пожалуйста, дайте нам знать.

Контакты

  • email: liaojeason@126.com
  • QQ群: 489873144 Android 格调小窝(点击图标,可以直接加入,建议使用QQ群,邮箱使用较少,可能看的不及时)
  • Если у вас возникли проблемы, пожалуйста, задавайте вопросы в группе. Мои личные возможности также ограничены, надеюсь, мы сможем учиться и развиваться вместе.

Демонстрация

imageimage imageimage

1. Использование

Перед использованием, если вы пользователь Android Studio, добавьте следующую строку кода:

    compile 'com.lzy.widget:imagepicker:0.6.1'  //указать версию

2. Функции и параметры

Примечание: в настоящее время в предварительном просмотре библиотеки есть флажок «исходное изображение», но логика сжатия ещё не реализована.

Параметр конфигурации Значение параметра
multiMode Режим выбора изображения, одиночный/множественный
selectLimit Ограничение количества множественных выборов, по умолчанию 9
showCamera Показывать ли кнопку съёмки при выборе изображения
crop Разрешить ли обрезку (только для одиночного выбора)
style Форма рамки обрезки при обрезке (прямоугольник или круг)
focusWidth Ширина рамки обрезки (для круга автоматически выбирается минимальное значение ширины и высоты)
focusHeight Высота рамки обрезки (для круга автоматически выбирается минимальное значение ширины и высоты)
outPutX Требуемая ширина сохранённого изображения после обрезки
outPutY Требуемая высота сохранённого изображения после обрезки
isSaveRectangle Сохранить форму обрезанного изображения как прямоугольник или форму рамки обрезки. Например, при обрезке круглой формы установите значение true, тогда сохранённое изображение будет иметь прямоугольную форму. Если установить значение false, сохранённое изображение будет круглой формы
imageLoader Необходимый загрузчик изображений, который должен реализовать интерфейс ImageLoader

3. Примеры кода

Для получения дополнительной информации о коде, пожалуйста, скачайте демоверсию и ознакомьтесь с исходным кодом.

  1. Сначала вам нужно унаследовать интерфейс com.lzy.imagepicker.loader.ImageLoader и реализовать его методы. Например, следующий код использует стороннюю библиотеку загрузки изображений Picasso:
public class PicassoImageLoader implements ImageLoader {

    @Override
    public void displayImage(Activity activity, String path, ImageView imageView, int width, int height) {
        Picasso.with(activity)//
                   .load(Uri.fromFile(new File(path)))//
                .placeholder(R.mipmap.default_image)//
                .error(R.mipmap.default_image)//
                .resize(width, height)//
                .centerInside()//
                .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE)//
                .into(imageView);
    }

    @Override
    public void clearMemoryCache() {
        //здесь метод очистки кеша, реализуйте его в соответствии с вашими потребностями
    }
}
  1. Затем настройте средство выбора изображений. Обычно это делается один раз при инициализации приложения. Здесь вам необходимо настроить загрузчик изображений, а остальные настройки можно настроить в соответствии с требованиями:
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_image_picker);
    
    ImagePicker imagePicker = ImagePicker.getInstance();
    imagePicker.setImageLoader(new PicassoImageLoader());   //настроить загрузчик изображений
    imagePicker.setShowCamera(true);  //показать кнопку съёмки
    imagePicker.setCrop(true);        //разрешить обрезку (только для одиночного выбора)
    imagePicker.setSaveRectangle(true); //сохранить обрезанное изображение в виде прямоугольника
    imagePicker.setSelectLimit(9);    //ограничить количество множественных выборов
    imagePicker.setStyle(CropImageView.Style.RECTANGLE);  //форма рамки обрезки
    imagePicker.setFocusWidth(800);   //ширина рамки обрезки. Единица измерения — пиксели (для круга автоматически выбирается наименьшее значение ширины и высоты)
    imagePicker.setFocusHeight(800);  //высота рамки обрезки. Единица измерения — пиксели (для круга автоматически выбирается наименьшее значение ширины и высоты)
    imagePicker.setOutPutX(1000);//требуемая ширина сохранённого изображения. Единица измерения — пиксели
    imagePicker.setOutPutY(1000);//требуемая высота сохранённого изображения. Единица измерения — пиксели
}
  1. После завершения настройки запустите галерею соответствующим методом, например, нажав кнопку:
public void onClick(View v) {
        Intent intent = new Intent(this, ImageGridActivity.class);
        startActivityForResult(intent, IMAGE_PICKER);  
    }
}
  1. Если вы хотите напрямую вызвать камеру:
Intent intent = new Intent(this, ImageGridActivity.class);
intent.putExtra(ImageGridActivity.EXTRAS_TAKE_PICKERS,true); // 是否 является прямой камерой
      startActivityForResult(intent, REQUEST_CODE_SELECT);
  1. Переопределите метод onActivityResult, чтобы получить результат:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == ImagePicker.RESULT_CODE_ITEMS) {
        if (data != null && requestCode == IMAGE_PICKER) {
            ArrayList<ImageItem> images =

``` ## Обновление журнала

V 0.6.1
 * [Объединение] [Оптимизация интерфейса страницы выбора изображения, адаптация к переключению между горизонтальным и вертикальным экранами на странице предварительного просмотра #195](https://github.com/jeasonlzy/ImagePicker/pull/195)

V 0.6.0
 * [Объединение] [Настройка интерфейса, действительно полная имитация WeChat](https://github.com/jeasonlzy/ImagePicker/pull/193)
 * [Объединение] [fix(location): решение проблемы сбоя из-за недопустимого изображения](https://github.com/jeasonlzy/ImagePicker/pull/188)

V 0.5.5
 * [Исправление] проблема, когда страница выбора изображения переходит в предварительный просмотр, отменяет выбор или возвращается в список после выбора, но не обновляется;
 * [исправление] сбой, который может произойти при динамическом разрешении 6.0;

V 0.5.4
 * [исправление] некоторые проблемы с утечкой памяти;
 * [исправление] новый метод отображения выбранных изображений: подробности см. на демонстрационной странице ImagePickerActivity; если эта функция не требуется, возможно, вам нужна WxDemoActivity.

V 0.5.3
 * [исправление] oom, вызванное поворотом изображения;
 * [исправление] проблемы с повторением TitleBar и строки состояния на некоторых телефонах;

V 0.5.1
 * [коррекция] поскольку функция исходного изображения фактически ещё не реализована, в этой версии скрыто отображение исходного изображения. Чтобы пользователи не были введены в заблуждение проблемой исходного изображения.
 * [исправление] использование RecyclerView для замены GridView решает проблему глобального обновления при изменении выбранного состояния;
 * [подсказка] хотя эта версия решает проблему глобального обновления, если вы используете Picasso, всё равно может возникнуть проблема с повторной загрузкой одного изображения, это проблема самого Picasso, рекомендуется использовать фреймворк Glide.
 
V 0.5.0
 * [исправление] решение проблемы конфликта провайдера; 

V 0.4.8
 * [исправление] решена проблема, из-за которой в демоверсии прямой вызов камеры и обрезка не возвращают данные, обновление не требуется, если эта функция не нужна;
 
V 0.4.7
 * [новое] добавлена функция прямого вызова камеры;
 * [исправление] решено возможное столкновение с провайдером основного проекта;
 * [исправление] исправлена проблема сбоя при нажатии на изображение предварительного просмотра;
 * [исправление] исправлена проблема сбоя, вызванная ограничением передачи значений через Intent;
 * [исправление] решены проблемы с поворотом изображения после съёмки на некоторых моделях;
 * [исправление] изменено фоновое изображение окна выбора на серый, чтобы избежать проблем с чтением белого изображения.
 
V 0.3.5
 * [новое] предоставляет способ прямого вызова камеры, а также возможность напрямую установить, будет ли обрезано изображение;
 * [исправление] проблема сбоя на устройствах Android7.0 при прямом вызове системной камеры;
 * [внимание] если возникает java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must not be exported, пожалуйста, выполните clean и запустите снова.
## Лицензии

Copyright 2016 jeasonlzy(廖子尧)

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Комментарии ( 0 )

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

Введение

Отдельно поддерживать библиотеку ImagePicker с открытым исходным кодом для выбора изображений, что удобно для требований вторичной разработки в соответствии с индивидуальными потребностями бизнеса. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dongni_faith-ImagePicker.git
git@api.gitlife.ru:oschina-mirror/dongni_faith-ImagePicker.git
oschina-mirror
dongni_faith-ImagePicker
dongni_faith-ImagePicker
master