###ImagePicker
Android-приложение для создания собственного фотоальбома, полностью имитирующего интерфейс WeChat. Реализованы функции съёмки, выбора (одиночного и множественного), обрезки, поворота и т. д.
Проект основан на:
Если вам нравится оригинал, вы можете использовать его. Также приглашаем всех скачать приложение и протестировать его. Если у вас возникнут какие-либо проблемы в процессе использования, пожалуйста, не стесняйтесь обращаться.
###Контакты
Эта группа была создана недавно, чтобы облегчить взаимодействие с пользователями моих проектов на GitHub. Если у вас возникли вопросы, пожалуйста, задавайте их в группе. Мои личные возможности также ограничены, надеюсь на совместное обучение и прогресс.
##Демонстрация
##Использование
Перед использованием приложения ImagePicker пользователям Android Studio предлагается выбрать один из двух способов добавления:
compile 'com.lzy.widget:imagepicker:0.1.4' //указать версию
compile 'com.lzy.widget:imagepicker:+' //выбрать последнюю версию
или
compile project(':imagepicker')
##Функции и параметры
Конфигурационный параметр | Значение параметра |
---|---|
multiMode | Режим выбора фотографий, одиночный или множественный выбор |
selectLimit | Ограничение на количество выбранных изображений по умолчанию — 9 |
showCamera | Отображение кнопки съёмки при выборе фотографии |
crop | Разрешить обрезку (только для одиночного выбора) |
style | Форма рамки обрезки при наличии обрезки: прямоугольная или круглая |
focusWidth | Ширина прямоугольной рамки обрезки (для круглой рамки ширина и высота автоматически принимают минимальные значения) |
focusHeight | Высота прямоугольной рамки обрезки (для круглой рамки ширина и высота автоматически принимают минимальные значения) |
outPutX | Требуемая ширина сохранённого изображения после обрезки |
outPutY | Требуемая высота сохранённого изображения после обрезки |
isSaveRectangle | Сохранить изображение после обрезки в виде прямоугольной области или в соответствии с формой рамки обрезки. Например, при использовании круглой рамки обрезки и установке этого параметра в значение true изображение будет сохранено в виде прямоугольника. При установке значения false изображение будет сохранено в круглой рамке |
imageLoader | Необходимый загрузчик изображений. Достаточно реализовать интерфейс ImageLoader |
##Пример кода ###1. Сначала настройте ImagePicker. Обычно достаточно выполнить настройку один раз
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_image_picker);
ImagePicker imagePicker = ImagePicker.getInstance();
imagePicker.setImageLoader(new GlideImageLoader()); //установить загрузчик изображений
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);//высота сохраняемого изображения. Единица измерения — пиксели
}
###2. После завершения настройки откройте галерею в подходящем методе, например, при нажатии кнопки
public void onClick(View v) {
Intent intent = new Intent(this, ImageGridActivity.class);
startActivityForResult(intent, IMAGE_PICKER);
}
}
###3. Переопределите метод 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 = (ArrayList<ImageItem>) data.getSerializableExtra(ImagePicker.EXTRA_RESULT_ITEMS);
MyAdapter adapter = new MyAdapter(images);
gridView.setAdapter(adapter);
} else {
Toast.makeText(this, "Нет данных", Toast.LENGTH_SHORT).show();
}
}
}
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )