O Transferee pode ajudá-lo a completar a transição perfeita da visualização em miniatura para a visualização original e navegar com elegância em multimídia em diferentes formatos, como imagens comuns, imagens longas, gifs, vídeos, etc.
Recursos suportados:
Se você tiver alguma dúvida, envie Problemas
demo.apk
passo 1.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
passo 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'
Se usado em um único ImageView, seria muito simples:
Transferee transfer = Transferee.getDefault(context);
transfer.apply(TransferConfig.build()
.setImageLoader(UniversalImageLoader.with(getApplicationContext()))
.setSourceUrlList(SourceConfig.getMixingSourceGroup())
.create()
).show());
// 离开页面不要忘记调用
transfer.destroy();
Se você precisar de mais recursos, aqui está um exemplo completo de uso do cessionário:
passo 1: Crie apenas um exemplo de cessionário para uma página (recomenda-se escrevê-lo no método onCreate)
transferee = Transferee.getDefault(context);
etapa 2: Criar configurador de parâmetros para o cessionário
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, 所有绑定方法只能调用一个
etapa 3: mostrar o cessionário
transferee.apply(config).show();
passo 4: Ao sair da página, você precisa destruir os recursos do transferido para evitar vazamentos de memória (recomenda-se escrevê-lo no método onDestroy)
transferee.destroy()
propriedade | ilustrar |
---|---|
fonteUrlList | Coleção de URLs de recursos a serem visualizados, formato String |
fonteUriList | Coleção de uri de recursos a ser visualizada, formato Uri |
agoraThumbnailIndex | O índice da miniatura no grupo de imagens Se você vincular ListView ou RecyclerView, este atributo será obrigatório, caso contrário, poderá ser ignorado ou poderá ser usado para especificar a posição da página de exibição inicial ao abrir o cessionário. |
fora da telaPageLimit | O número de recursos inicialmente carregados ao exibir o transferidor O padrão é 1, o que significa que 3 imagens são carregadas pela primeira vez (nowThumbnailIndex, nowThumbnailIndex + 1, nowThumbnailIndex - 1); E assim por diante |
missPlaceHolder | Imagem de espaço reservado padrão, formato de ID de recurso. A imagem exibida por padrão quando o recurso não está carregado. |
missDrawable | Imagem de espaço reservado padrão, formato drawable. A imagem exibida por padrão quando o recurso não está carregado. |
erroPlaceHolder | Carregando imagem de espaço reservado incorreta, formato de ID de recurso. A imagem exibida quando a imagem original é carregada incorretamente |
erroDrawable | Carregando imagem de espaço reservado incorreta, formato Drawable. A imagem exibida quando a imagem original é carregada incorretamente |
cor de fundo | Quando o cessionário é exibido, a cor de fundo do cessionário |
duração | A duração de animações como abertura, fechamento, gesto de arrastar para fechar, exibição de animação de transparência, desaparecimento de difusão, etc. |
justLoadHitPage | Se deseja carregar apenas recursos na página atual. Se definido como verdadeiro, somente quando o transferido mudar para a página atual, a ação de carregamento da página atual será acionada. Caso contrário, a ação de pré-carregamento e carregamento da página atual será feita de acordo com o valor definido por offscreenPageLimit. está fechado por padrão. |
enableDragClose | Se suporta arrastar para baixo para fechar, ativado por padrão |
ativarArrastarOcultar | Se deseja ocultar outras visualizações, exceto a visualização principal, ao arrastar e fechar. Está habilitado por padrão. |
ativarDragPause | Se a reprodução do vídeo deve ser pausada na página atual ao arrastar para fechar. Ela está fechada por padrão. |
ativarHideThumb | Habilitar ou ocultar miniaturas quando o transferidor estiver habilitado, habilitado por padrão |
enableScrollingWithPageChange | Se a lista deve ser iniciada para rolar conforme a página muda, só é válido para vincular RecyclerView/GridView/ListView Após a inicialização, como a lista irá rolar em tempo real, a visualização em miniatura não aparecerá vazia, garantindo assim que o cessionário seja fechado. transitoriamente quando está fechado Animação, desativada por padrão. |
indicador de progresso | Indicador de progresso de carregamento de recursos (ProgressPieIndicator e ProgressBarIndicator são integrados por padrão). Você pode implementar a interface IProgressIndicator para definir seu próprio indicador de progresso de carregamento de recursos. |
indicador de índice | Indicador de índice de recursos (CircleIndexIndicator e NumberIndexIndicator são integrados por padrão). Você pode implementar a interface IIndexIndicator para definir seu próprio indicador de índice de recursos. |
carregador de imagem | Carregador de recursos. Você pode implementar a interface ImageLoader para definir seu próprio carregador de imagens. |
ID da imagem | ID do ImageView no RecyclerView ou no ItemView do ListView |
visualização personalizada | Visualização definida pelo usuário, colocada no painel exibido pelo cessionário |
listaView | Se você estiver usando ListView ou GridView para organizar e exibir imagens, você precisará passar seu ListView ou GridView para o método bindListView() |
recicladorView | Se você usar RecyclerView para organizar e exibir imagens, será necessário passar o RecyclerView para o método bindRecyclerView() |
imagemView | Se você deseja usar apenas as funções desta biblioteca para um único ImageView, ou o único ImageView na interface é a capa do álbum, então usar bindImageView(...) ou seu método sobrecarregado pode atender às suas necessidades. |
método | ilustrar |
---|---|
getDefault(contexto) | Obter instância do transferido |
aplicar (configuração) | Aplicar o objeto de parâmetro de configuração à instância do transferido |
mostrar() | Abrir/mostrar cessionário |
mostrar (ouvinte) | Abrir/exibir o cessionário e monitorar o status de exibição/fechamento |
éMostrado() | o cessionário deve exibir |
liberar() | Fechar cessionário |
claro() | Limpe todos os arquivos em cache, como fotos e vídeos |
destruir() | Destrua os recursos usados pelo cessionário para evitar vazamentos de memória |
getImageFile(url) | Obtenha a imagem em cache correspondente ao URL |
setOnTransfereeStateChangeListener(ouvinte) | Definir o transferidor para exibir/fechar o ouvinte para alterações de status |
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.