Le bénéficiaire du transfert peut vous aider à effectuer la transition transparente de la vue miniature à la vue originale et à parcourir avec élégance les fichiers multimédias dans différents formats tels que des images ordinaires, des images longues, des gifs, des vidéos, etc.
Fonctionnalités prises en charge :
Si vous avez des questions, veuillez soumettre les problèmes
démo.apk
étape1.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
étape2.
// 添加所有 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'
S'il était utilisé sur un seul ImageView, ce serait très simple :
Transferee transfer = Transferee.getDefault(context);
transfer.apply(TransferConfig.build()
.setImageLoader(UniversalImageLoader.with(getApplicationContext()))
.setSourceUrlList(SourceConfig.getMixingSourceGroup())
.create()
).show());
// 离开页面不要忘记调用
transfer.destroy();
Si vous avez besoin de plus de fonctionnalités, voici un exemple complet d'utilisation du cessionnaire :
étape 1 : Créer un seul exemple de cessionnaire pour une page (il est recommandé de l'écrire dans la méthode onCreate)
transferee = Transferee.getDefault(context);
étape 2 : Créer un configurateur de paramètres pour le cessionnaire
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, 所有绑定方法只能调用一个
étape 3 : afficher le cessionnaire
transferee.apply(config).show();
étape 4 : En quittant la page, vous devez détruire les ressources du destinataire pour éviter les fuites de mémoire (il est recommandé de l'écrire dans la méthode onDestroy)
transferee.destroy()
propriété | illustrer |
---|---|
sourceUrlListe | Collection d'URL de ressources à prévisualiser, format String |
sourceUriList | Collection d'URI de ressources à prévisualiser, format Uri |
maintenantThumbnailIndex | L'index de la vignette dans le groupe d'images. Si vous liez ListView ou RecyclerView, cet attribut est obligatoire, sinon il peut être ignoré ou il peut être utilisé pour spécifier la position de la page d'affichage initiale lors de l'ouverture du bénéficiaire. |
horsécranPageLimit | Le nombre de ressources initialement chargées lors de l'affichage du bénéficiaire. La valeur par défaut est 1, ce qui signifie que 3 images sont chargées pour la première fois (nowThumbnailIndex, nowThumbnailIndex + 1, nowThumbnailIndex - 1, ce qui signifie que 5 images sont chargées). Et ainsi de suite |
missPlaceHolder | Image d'espace réservé par défaut, format d'identifiant de ressource. L'image affichée par défaut lorsque la ressource n'est pas chargée. |
missDrawable | Image d'espace réservé par défaut, format Drawable. L'image affichée par défaut lorsque la ressource n'est pas chargée. |
erreurPlaceHolder | Chargement d'une mauvaise image d'espace réservé, format d'identifiant de ressource. L'image affichée lorsque l'image originale n'est pas chargée correctement |
erreurDrawable | Chargement d'une mauvaise image d'espace réservé, format dessinable. L'image affichée lorsque l'image originale n'est pas chargée correctement |
Couleur de fond | Lorsque le cessionnaire est affiché, couleur d'arrière-plan du cessionnaire |
durée | La durée des animations telles que l'ouverture, la fermeture, le geste de glisser pour fermer, l'affichage de l'animation de transparence, la disparition de diffusion, etc. |
justeLoadHitPage | S'il faut charger uniquement les ressources dans la page actuelle. S'il est défini sur true, ce n'est que lorsque le bénéficiaire passe à la page actuelle que l'action de chargement de la page actuelle sera déclenchée. Sinon, l'action de préchargement et de chargement de la page actuelle sera effectuée en fonction de la valeur définie par offscreenPageLimit. fermé par défaut. |
activerDragFermer | S'il faut prendre en charge le glisser vers le bas pour fermer, activé par défaut |
activerDragMasquer | S'il faut masquer d'autres vues à l'exception de la vue principale lors du glisser et de la fermeture. Elle est activée par défaut. |
activerDragPause | S'il faut suspendre la lecture vidéo sur la page actuelle lors du glisser pour la fermer. Elle est fermée par défaut. |
activerMasquer le pouce | S'il faut activer ou masquer les vignettes lorsque le bénéficiaire est activé, activé par défaut |
activerScrollingWithPageChange | Le fait de démarrer la liste pour qu'elle défile au fur et à mesure que la page change, n'est valable que pour la liaison RecyclerView/GridView/ListView Après le démarrage, car la liste défilera en temps réel, la vue miniature ne sera pas vide, garantissant ainsi que le cessionnaire est fermé. de manière transitoire lorsqu'il est fermé. Animation, désactivée par défaut. |
indicateur de progression | Indicateur de progression du chargement des ressources (ProgressPieIndicator et ProgressBarIndicator sont intégrés par défaut). Vous pouvez implémenter l'interface IProgressIndicator pour définir votre propre indicateur de progression du chargement des ressources. |
indexIndicateur | Indicateur d'index de ressources (CircleIndexIndicator et NumberIndexIndicator sont intégrés par défaut). Vous pouvez implémenter l'interface IIndexIndicator pour définir votre propre indicateur d'index de ressources. |
chargeur d'image | Chargeur de ressources. Vous pouvez implémenter l'interface ImageLoader pour définir votre propre chargeur d'images. |
ID d'image | Identifiant ImageView dans RecyclerView ou ItemView de ListView |
vue personnalisée | Vue définie par l'utilisateur, placée sur le panneau affiché par le cessionnaire |
listeView | Si vous utilisez ListView ou GridView pour organiser et afficher des images, vous devez transmettre votre ListView ou GridView dans la méthode bindListView() |
recycleurVoir | Si vous utilisez RecyclerView pour organiser et afficher des images, vous devez transmettre RecyclerView dans la méthode bindRecyclerView() |
imageView | Si vous souhaitez utiliser uniquement les fonctions de cette bibliothèque pour un seul ImageView, ou si un seul ImageView sur l'interface est la couverture d'un album, alors utiliser bindImageView(...) ou sa méthode surchargée peut répondre à vos besoins. |
méthode | illustrer |
---|---|
getDefault (contexte) | Obtenir l'instance du cessionnaire |
appliquer (config) | Appliquer l'objet paramètre de configuration à l'instance du cessionnaire |
montrer() | Ouvrir/afficher le cessionnaire |
montrer (auditeur) | Ouvrir/afficher le cessionnaire et surveiller l'état d'affichage/fermeture |
estMontré() | cessionnaire s'il doit afficher |
rejeter() | Fermer le cessionnaire |
clair() | Effacez tous les fichiers mis en cache tels que les images et les vidéos |
détruire() | Détruire les ressources utilisées par le bénéficiaire pour éviter les fuites de mémoire |
getImageFile (url) | Récupère l'image en cache correspondant à l'url |
setOnTransfereeStateChangeListener (écouteur) | Configurer le cessionnaire pour qu'il affiche/ferme l'écouteur pour les changements de statut |
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.