Penerima transfer dapat membantu Anda menyelesaikan transisi mulus dari tampilan thumbnail ke tampilan asli, dan menelusuri multimedia dengan elegan dalam berbagai format seperti gambar biasa, gambar panjang, gif, video, dll.
Fitur yang didukung:
Jika Anda memiliki pertanyaan, silakan kirimkan Masalah
demo.apk
langkah1.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
langkah2.
// 添加所有 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'
Jika digunakan terhadap satu ImageView, itu akan sangat sederhana:
Transferee transfer = Transferee.getDefault(context);
transfer.apply(TransferConfig.build()
.setImageLoader(UniversalImageLoader.with(getApplicationContext()))
.setSourceUrlList(SourceConfig.getMixingSourceGroup())
.create()
).show());
// 离开页面不要忘记调用
transfer.destroy();
Jika Anda membutuhkan lebih banyak fitur, berikut contoh lengkap penggunaan penerima transfer:
langkah 1: Buat hanya satu contoh penerima transfer untuk satu halaman (disarankan untuk menulisnya dalam metode onCreate)
transferee = Transferee.getDefault(context);
langkah 2: Buat konfigurator parameter untuk penerima transfer
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, 所有绑定方法只能调用一个
langkah 3: tunjukkan penerima transfer
transferee.apply(config).show();
langkah 4: Saat meninggalkan halaman, Anda perlu menghancurkan sumber daya di penerima transfer untuk mencegah kebocoran memori (disarankan untuk menulisnya dalam metode onDestroy)
transferee.destroy()
milik | menjelaskan |
---|---|
sourceUrlList | Kumpulan URL sumber daya yang akan dipratinjau, format String |
sumberUriList | Koleksi sumber daya uri yang akan dipratinjau, format Uri |
sekarangThumbnailIndex | Indeks thumbnail dalam grup gambar. Jika Anda mengikat ListView atau RecyclerView, atribut ini diperlukan, jika tidak maka dapat diabaikan atau dapat digunakan untuk menentukan posisi halaman tampilan awal saat membuka penerima transfer; |
di luar layarPageLimit | Jumlah sumber daya yang awalnya dimuat saat menampilkan penerima transfer. Defaultnya adalah 1, yang berarti 3 gambar dimuat untuk pertama kalinya (nowThumbnailIndex, nowThumbnailIndex + 1, nowThumbnailIndex - 1); Dan sebagainya |
rinduPlaceHolder | Gambar placeholder default, format id sumber daya. Gambar ditampilkan secara default ketika sumber daya tidak dimuat. |
missDrawable | Gambar placeholder default, format yang dapat digambar. Gambar ditampilkan secara default ketika sumber daya tidak dimuat. |
kesalahanPlaceHolder | Memuat gambar placeholder yang salah, format id sumber daya. Gambar ditampilkan ketika gambar asli tidak dimuat dengan benar |
errorDrawable | Memuat gambar placeholder yang salah, format Drawable. Gambar ditampilkan ketika gambar asli tidak dimuat dengan benar |
warna latar belakang | Saat penerima transfer ditampilkan, warna latar belakang penerima transfer |
lamanya | Durasi animasi seperti pembukaan, penutupan, gerakan menyeret untuk menutup, tampilan animasi transparansi, hilangnya difusi, dll. |
hanyaMuatHitPage | Apakah hanya memuat sumber daya di halaman saat ini. Jika disetel ke true, maka hanya ketika penerima transfer beralih ke halaman saat ini, tindakan pemuatan halaman saat ini akan dipicu. Jika tidak, tindakan pramuat dan pemuatan halaman saat ini akan dilakukan sesuai dengan nilai yang ditetapkan oleh offscreenPageLimit ditutup secara default. |
aktifkanDragClose | Apakah akan mendukung menyeret ke bawah untuk menutup, diaktifkan secara default |
aktifkanDragHide | Apakah akan menyembunyikan tampilan lain kecuali tampilan utama saat menyeret dan menutup. Ini diaktifkan secara default. |
aktifkanDragPause | Apakah akan menjeda pemutaran video pada halaman saat ini ketika menyeret untuk menutupnya. |
aktifkan Sembunyikan Jempol | Apakah akan mengaktifkan atau menyembunyikan thumbnail saat penerima transfer diaktifkan, diaktifkan secara default |
aktifkanScrollingWithPageChange | Apakah akan memulai daftar untuk menggulir saat halaman berpindah, hanya berlaku untuk mengikat RecyclerView/GridView/ListView. Setelah startup, karena daftar akan bergulir secara real time, tampilan thumbnail tidak akan kosong, sehingga memastikan bahwa penerima transfer ditutup secara transisi ketika ditutup |
Indikator kemajuan | Indikator kemajuan pemuatan sumber daya (ProgressPieIndicator dan ProgressBarIndicator sudah terpasang secara default). Anda dapat mengimplementasikan antarmuka IProgressIndicator untuk menentukan indikator kemajuan pemuatan sumber daya Anda sendiri. |
indeksIndikator | Indikator indeks sumber daya (CircleIndexIndicator dan NumberIndexIndicator sudah terpasang secara default). Anda dapat mengimplementasikan antarmuka IIndexIndicator untuk menentukan indikator indeks sumber daya Anda sendiri. |
pemuat gambar | Pemuat sumber daya. Anda dapat mengimplementasikan antarmuka ImageLoader untuk menentukan pemuat gambar Anda sendiri. |
imageId | Id ImageView di RecyclerView atau ItemView ListView |
tampilan khusus | Tampilan yang ditentukan pengguna, ditempatkan pada panel yang ditampilkan oleh penerima transfer |
tampilan daftar | Jika Anda menggunakan ListView atau GridView untuk menyusun dan menampilkan gambar, Anda perlu meneruskan ListView atau GridView ke dalam metode bindListView() |
tampilan pendaur ulang | Jika Anda menggunakan RecyclerView untuk menyusun dan menampilkan gambar, Anda harus meneruskan RecyclerView ke dalam metode bindRecyclerView() |
tampilan gambar | Jika Anda hanya ingin menggunakan fungsi perpustakaan ini untuk satu ImageView, atau jika satu ImageView di antarmuka adalah sampul album, maka menggunakan bindImageView(...) atau metode kelebihan bebannya dapat memenuhi kebutuhan Anda. |
metode | menjelaskan |
---|---|
getDefault(konteks) | Dapatkan contoh penerima transfer |
terapkan(konfigurasi) | Terapkan objek parameter konfigurasi ke instance penerima transfer |
menunjukkan() | Buka/tunjukkan penerima transfer |
tampilkan (pendengar) | Buka/tampilkan penerima transfer dan pantau status tampilan/tutup |
ditampilkan() | penerima transfer apakah akan ditampilkan |
membubarkan() | Tutup penerima transfer |
jernih() | Hapus semua file cache seperti gambar dan video |
menghancurkan() | Hancurkan sumber daya yang digunakan oleh penerima transfer untuk mencegah kebocoran memori |
dapatkan File Gambar(url) | Dapatkan gambar cache yang sesuai dengan url |
setOnTransfereeStateChangeListener(pendengar) | Atur penerima transfer untuk menampilkan/menutup pendengar untuk perubahan 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.