Transferee может помочь вам осуществить плавный переход от просмотра миниатюр к исходному виду и элегантно просматривать мультимедиа в различных форматах, таких как обычные изображения, длинные изображения, GIF-файлы, видео и т. д.
Поддерживаемые функции:
Если у вас есть какие-либо вопросы, пожалуйста, отправьте вопросы
демо.apk
шаг1.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
шаг2.
// 添加所有 module [包括 Transferee、GlideImageLoader、PicassoImageLoader、UniversalImageLoader]
implementation 'com.github.Hitomis:transferee:1.6.1'
// 单独添加核心 module Transferee, 之后至少还需要添加以下三种图片加载器中的一种
implementation 'com.github.Hitomis.transferee:Transferee:1.6.1'
// 添加 Glide 图片加载器
implementation 'com.github.Hitomis.transferee:GlideImageLoader:1.6.1'
// 添加 Picasso 图片加载器
implementation 'com.github.Hitomis.transferee:PicassoImageLoader:1.6.1'
// 添加 Universal 图片加载器
implementation 'com.github.Hitomis.transferee:UniversalImageLoader:1.6.1'
Если использовать его для одного ImageView, это будет очень просто:
Transferee transfer = Transferee.getDefault(context);
transfer.apply(TransferConfig.build()
.setImageLoader(UniversalImageLoader.with(getApplicationContext()))
.setSourceUrlList(SourceConfig.getMixingSourceGroup())
.create()
).show());
// 离开页面不要忘记调用
transfer.destroy();
Если вам нужны дополнительные функции, вот полный пример использования получателя:
шаг 1: Создайте только один пример получателя для одной страницы (рекомендуется прописать его в методе onCreate)
transferee = Transferee.getDefault(context);
Шаг 2. Создайте конфигуратор параметров для получателя
TransferConfig config = TransferConfig.build()
.setSourceImageList(sourceUrlList) // 资源 url 集合, String 格式
.setSourceUriList(sourceUriList) // 资源 uri 集合, Uri 格式
.setMissPlaceHolder(R.mipmap.ic_empty_photo) // 资源加载前的占位图
.setErrorPlaceHolder(R.mipmap.ic_empty_photo) // 资源加载错误后的占位图
.setProgressIndicator(new ProgressPieIndicator()) // 资源加载进度指示器, 可以实现 IProgressIndicator 扩展
.setIndexIndicator(new NumberIndexIndicator()) // 资源数量索引指示器,可以实现 IIndexIndicator 扩展
.setImageLoader(GlideImageLoader.with(getApplicationContext())) // 图片加载器,可以实现 ImageLoader 扩展
.setBackgroundColor(Color.parseColor("#000000")) // 背景色
.setDuration(300) // 开启、关闭、手势拖拽关闭、显示、扩散消失等动画时长
.setOffscreenPageLimit(2) // 第一次初始化或者切换页面时预加载资源的数量,与 justLoadHitImage 属性冲突,默认为 1
.setCustomView(customView) // 自定义视图,将放在 transferee 的面板上
.setNowThumbnailIndex(index) // 缩略图在图组中的索引
.enableJustLoadHitPage(true) // 是否只加载当前显示在屏幕中的的资源,默认关闭
.enableDragClose(true) // 是否开启下拉手势关闭,默认开启
.enableDragHide(false) // 下拉拖拽关闭时,是否先隐藏页面上除主视图以外的其他视图,默认开启
.enableDragPause(false) // 下拉拖拽关闭时,如果当前是视频,是否暂停播放,默认关闭
.enableHideThumb(false) // 是否开启当 transferee 打开时,隐藏缩略图, 默认关闭
.enableScrollingWithPageChange(false) // 是否启动列表随着页面的切换而滚动你的列表,默认关闭
.setOnLongClickListener(new Transferee.OnTransfereeLongClickListener() { // 长按当前页面监听器
@Override
public void onLongClick(ImageView imageView, String imageUri, int pos) {
saveImageFile(imageUri); // 使用 transferee.getFile(imageUri) 获取缓存文件保存,视频不支持
}
})
.bindImageView(imageView, source) // 绑定一个 ImageView, 所有绑定方法只能调用一个
.bindListView(listView, R.id.iv_thumb) // 绑定一个 ListView, 所有绑定方法只能调用一个
.bindRecyclerView(recyclerView, R.id.iv_thumb) // 绑定一个 RecyclerView, 所有绑定方法只能调用一个
шаг 3: показать получателя
transferee.apply(config).show();
шаг 4: При выходе со страницы необходимо уничтожить ресурсы в получателе, чтобы предотвратить утечки памяти (рекомендуется прописать это в методе onDestroy)
transferee.destroy()
свойство | иллюстрировать |
---|---|
исходный урллист | Коллекция URL-адресов ресурсов для предварительного просмотра, строковый формат |
источникUriList | Коллекция ресурсов URI для предварительного просмотра, формат Uri |
сейчасThumbnailIndex | Индекс миниатюры в группе изображений. Если вы привязываете ListView или RecyclerView, этот атрибут является обязательным, в противном случае его можно игнорировать или использовать для указания положения начальной страницы отображения при открытии получателя. |
за кадромPageLimit | Количество ресурсов, изначально загружаемых при отображении получателя. По умолчанию установлено значение 1, что означает, что 3 изображения загружаются впервые (nowThumbnailIndex, nowThumbnailIndex + 1, nowThumbnailIndex - 1), что означает, что загружается 5 изображений. И так далее |
промахМестоДержатель | Изображение-заполнитель по умолчанию, формат идентификатора ресурса. Картинка отображается по умолчанию, когда ресурс не загружен. |
MissDrawable | Изображение-заполнитель по умолчанию, формат Drawable. Картинка отображается по умолчанию, когда ресурс не загружен. |
ошибкаPlaceHolder | Загрузка неправильного изображения-заполнителя, формат идентификатора ресурса. Изображение, отображаемое при неправильной загрузке исходного изображения |
ошибкаDrawable | Загрузка неправильного изображения-заполнителя, формат Drawable. Изображение, отображаемое при неправильной загрузке исходного изображения |
фонЦвет | Когда отображается получатель, цвет фона получателя |
продолжительность | Продолжительность анимации, такой как открытие, закрытие, перетаскивание жестом для закрытия, отображение анимации прозрачности, исчезновение диффузии и т. д. |
простоLoadHitPage | Загружать ли только ресурсы на текущей странице. Если установлено значение true, то действие загрузки текущей страницы будет запущено только тогда, когда получатель переключается на текущую страницу. В противном случае действие предварительной загрузки и загрузки текущей страницы будет выполняться в соответствии со значением, установленным offscreenPageLimit. закрыт по умолчанию. |
включитьDragClose | Поддерживать ли перетаскивание вниз для закрытия, включено по умолчанию |
включитьDragHide | Скрывать ли другие виды, кроме основного, при перетаскивании и закрытии. Включено по умолчанию. |
включитьDragPause | Приостанавливать ли воспроизведение видео на текущей странице при перетаскивании для закрытия. По умолчанию она закрыта. |
включитьHideThumb | Включить или скрыть миниатюры, когда получатель включен, включено по умолчанию |
EnableScrollingWithPageChange | Запускать ли список для прокрутки при переключении страниц, допустимо только для привязки RecyclerView/GridView/ListView. После запуска, поскольку список будет прокручиваться в реальном времени, представление миниатюр не будет пустым, что гарантирует закрытие получателя. переходно, когда он закрыт. Анимация по умолчанию отключена. |
индикатор прогресса | Индикатор прогресса загрузки ресурса (ProgressPieIndicator и ProgressBarIndicator встроены по умолчанию). Вы можете реализовать интерфейс IProgressIndicator, чтобы определить собственный индикатор хода загрузки ресурсов. |
индексИндикатор | Индикатор индекса ресурса (CircleIndexIndicator и NumberIndexIndicator встроены по умолчанию). Вы можете реализовать интерфейс IIndexIndicator, чтобы определить собственный индикатор индекса ресурсов. |
imageLoader | Загрузчик ресурсов. Вы можете реализовать интерфейс ImageLoader, чтобы определить свой собственный загрузчик изображений. |
идентификатор изображения | Идентификатор ImageView в RecyclerView или ItemView ListView |
CustomView | Пользовательский вид, размещаемый на панели, отображаемой получателем |
списокView | Если вы используете ListView или GridView для упорядочения и отображения изображений, вам необходимо передать ListView или GridView в методbindListView(). |
переработчикПросмотр | Если вы используете RecyclerView для упорядочения и отображения изображений, вам необходимо передать RecyclerView в методbindRecyclerView(). |
изображениеView | Если вы хотите использовать функции этой библиотеки только для одного ImageView или если один ImageView в интерфейсе является обложкой альбома, то использование методаbindImageView(...) или его перегруженного метода может удовлетворить ваши потребности. |
метод | иллюстрировать |
---|---|
getDefault (контекст) | Получить экземпляр получателя |
применить (конфигурация) | Примените объект параметра конфигурации к экземпляру получателя |
показывать() | Открыть/показать получателя |
шоу (слушатель) | Открытие/отображение получателя и мониторинг статуса отображения/закрытия |
isShown() | получатель, отображать ли |
увольнять() | Закрыть получателя |
прозрачный() | Очистите все кэшированные файлы, такие как изображения и видео. |
разрушать() | Уничтожить ресурсы, используемые получателем, чтобы предотвратить утечки памяти. |
getImageFile (url) | Получить кешированное изображение, соответствующее URL-адресу |
setOnTransfereeStateChangeListener (прослушиватель) | Установите получателя для отображения/закрытия прослушивателя изменений статуса |
v1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.3.0
v1.2.0
v1.1.0
v1.0.0
v0.5
Copyright 2017 Vans, Inc.
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.