Transferee puede ayudarle a completar la transición perfecta de la vista en miniatura a la vista original y a explorar multimedia con elegancia en diferentes formatos, como imágenes normales, imágenes largas, gifs, vídeos, etc.
Funciones compatibles:
Si tiene alguna pregunta, envíe Problemas
demo.apk
paso 1.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
paso 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'
Si se usa contra un único ImageView, sería muy simple:
Transferee transfer = Transferee.getDefault(context);
transfer.apply(TransferConfig.build()
.setImageLoader(UniversalImageLoader.with(getApplicationContext()))
.setSourceUrlList(SourceConfig.getMixingSourceGroup())
.create()
).show());
// 离开页面不要忘记调用
transfer.destroy();
Si necesita más funciones, aquí hay un ejemplo de uso completo de cesionario:
Paso 1: cree solo un ejemplo de cesionario para una página (se recomienda escribirlo en el método onCreate)
transferee = Transferee.getDefault(context);
Paso 2: crear un configurador de parámetros para el cesionario
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, 所有绑定方法只能调用一个
paso 3: mostrar cesionario
transferee.apply(config).show();
Paso 4: al salir de la página, debe destruir los recursos en el cesionario para evitar pérdidas de memoria (se recomienda escribirlo en el método onDestroy)
transferee.destroy()
propiedad | ilustrar |
---|---|
fuenteUrlList | Colección de URL de recursos para obtener una vista previa, formato de cadena |
fuenteUriList | Se obtendrá una vista previa de la colección de uri de recursos, formato uri |
ahoraÍndice de miniaturas | El índice de la miniatura en el grupo de imágenes. Si vincula ListView o RecyclerView, este atributo es obligatorio; de lo contrario, puede ignorarse o usarse para especificar la posición de la página de visualización inicial al abrir el cesionario. |
límite de página fuera de la pantalla | La cantidad de recursos cargados inicialmente al mostrar el transferido. El valor predeterminado es 1, lo que significa que se cargan 3 imágenes por primera vez (nowThumbnailIndex, nowThumbnailIndex + 1, nowThumbnailIndex - 1); Etcétera |
MissPlaceHolder | Imagen de marcador de posición predeterminada, formato de identificación de recurso. La imagen que se muestra de forma predeterminada cuando el recurso no está cargado. |
señorita dibujable | Imagen de marcador de posición predeterminada, formato dibujable. La imagen que se muestra de forma predeterminada cuando el recurso no está cargado. |
errorPlaceHolder | Cargando imagen de marcador de posición incorrecta, formato de identificación de recurso. La imagen que se muestra cuando la imagen original se carga incorrectamente |
errorDibujable | Cargando una imagen de marcador de posición incorrecta, formato dibujable. La imagen que se muestra cuando la imagen original se carga incorrectamente |
fondoColor | Cuando se muestra el cesionario, el color de fondo del cesionario |
duración | La duración de animaciones como apertura, cierre, gesto de arrastrar para cerrar, visualización de animación de transparencia, desaparición de difusión, etc. |
justLoadHitPage | Si se cargan solo recursos en la página actual. Si se establece en verdadero, solo cuando el cesionario cambie a la página actual, se activará la acción de carga de la página actual. De lo contrario, la acción de precarga y carga de la página actual se realizará de acuerdo con el valor establecido por offscreenPageLimit. está cerrado por defecto. |
habilitarArrastrarCerrar | Si se admite arrastrar hacia abajo para cerrar, habilitado de forma predeterminada |
habilitarArrastrarOcultar | Si se ocultan otras vistas excepto la vista principal al arrastrar y cerrar. Está habilitado de forma predeterminada. |
habilitarArrastrarPausa | Si se debe pausar la reproducción de video en la página actual al arrastrar para cerrar. Está cerrado de forma predeterminada. |
habilitarOcultarpulgar | Si habilitar u ocultar miniaturas cuando el cesionario está habilitado, habilitado de forma predeterminada |
enableScrollingWithPageChange | Si iniciar la lista para desplazarse a medida que cambia la página, solo es válido para vincular RecyclerView/GridView/ListView Después del inicio, debido a que la lista se desplazará en tiempo real, la vista en miniatura no aparecerá vacía, lo que garantiza que el cesionario esté cerrado. de forma transitoria cuando está cerrado. Animación, desactivada de forma predeterminada. |
indicador de progreso | Indicador de progreso de carga de recursos (ProgressPieIndicator y ProgressBarIndicator están integrados de forma predeterminada). Puede implementar la interfaz IProgressIndicator para definir su propio indicador de progreso de carga de recursos. |
índiceIndicador | Indicador de índice de recursos (CircleIndexIndicator y NumberIndexIndicator están integrados de forma predeterminada). Puede implementar la interfaz IIndexIndicator para definir su propio indicador de índice de recursos. |
cargador de imágenes | Cargador de recursos. Puede implementar la interfaz ImageLoader para definir su propio cargador de imágenes. |
ID de imagen | ID de ImageView en RecyclerView o ItemView de ListView |
vista personalizada | Vista definida por el usuario, ubicada en el panel mostrado por el cesionario |
listaVer | Si está utilizando ListView o GridView para organizar y mostrar imágenes, debe pasar su ListView o GridView al método bindListView(). |
recicladorVer | Si usa RecyclerView para organizar y mostrar imágenes, debe pasar RecyclerView al método bindRecyclerView() |
imagenVer | Si solo desea utilizar las funciones de esta biblioteca para un único ImageView, o el único ImageView en la interfaz es la portada del álbum, entonces usar bindImageView(...) o su método sobrecargado puede satisfacer sus necesidades. |
método | ilustrar |
---|---|
getDefault(contexto) | Obtener instancia de cesionario |
aplicar(configuración) | Aplicar el objeto de parámetro de configuración a la instancia del cesionario |
espectáculo() | Abrir/mostrar cesionario |
mostrar (oyente) | Abrir/mostrar al cesionario y monitorear el estado de visualización/cierre |
se muestra() | cesionario si debe mostrar |
despedir() | Cerrar cesionario |
claro() | Borre todos los archivos almacenados en caché, como imágenes y videos |
destruir() | Destruir los recursos utilizados por el cesionario para evitar pérdidas de memoria |
obtener archivo de imagen (url) | Obtenga la imagen en caché correspondiente a la URL |
setOnTransfereeStateChangeListener(oyente) | Configurar al cesionario para que muestre/cierre el oyente para cambios de estado |
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.