transferee
v1.6.1
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();
さらに多くの機能が必要な場合は、transferee の完全な使用例を次に示します。
ステップ 1: 1 ページに転送先の例を 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リスト | プレビューするリソース URL のコレクション、文字列形式 |
ソースUriList | プレビューするリソース URI コレクション、URI 形式 |
nowサムネイルインデックス | 画像グループ内のサムネイルのインデックス。ListView または RecyclerView をバインドする場合、この属性は必須です。それ以外の場合は、転送先を開くときに最初の表示ページの位置を指定するために使用できます。 |
オフスクリーンページ制限 | 転送先を表示するときに最初にロードされるリソースの数は、デフォルトは 1 で、初めて 3 枚の画像がロードされることを意味します (nowThumbnailIndex、nowThumbnailIndex + 1、nowThumbnailIndex - 1)。値は 2、つまり 5 枚の画像がロードされることを意味します。等々 |
ミスプレイスホルダー | デフォルトのプレースホルダー画像、リソース ID 形式。リソースがロードされていないときにデフォルトで表示される画像。 |
missDrawable | デフォルトのプレースホルダー画像、Drawable 形式。リソースがロードされていないときにデフォルトで表示される画像。 |
エラープレースホルダー | 間違ったプレースホルダー画像、リソース ID 形式をロードしています。元画像の読み込みが間違っている場合に表示される画像 |
エラー描画可能 | 間違ったプレースホルダー画像、Drawable 形式を読み込みます。元画像の読み込みが間違っている場合に表示される画像 |
背景色 | 転送先を表示する場合、転送先の背景色 |
間隔 | 開く、閉じる、ジェスチャーをドラッグして閉じる、透明アニメーションの表示、拡散の消失などのアニメーションの継続時間。 |
justLoadHitPage | 現在のページのリソースのみをロードするかどうか。 true に設定すると、転送先が現在のページに切り替えた場合にのみ、現在のページの読み込みアクションがトリガーされます。それ以外の場合は、offscreenPageLimit で設定された値に従って、現在のページの読み込みアクションが実行されます。デフォルトでは閉じられています。 |
ドラッグクローズを有効にする | 下にドラッグして閉じることをサポートするかどうか (デフォルトで有効) |
ドラッグ非表示を有効にする | ドラッグして閉じるときにメインビュー以外のビューを非表示にするかどうか。デフォルトで有効になっています。 |
ドラッグ一時停止を有効にする | ドラッグして閉じるときに現在のページでビデオの再生を一時停止するかどうか。デフォルトでは閉じられています。 |
サムを非表示にする | 転送先が有効な場合にサムネイルを有効にするか非表示にするか。デフォルトで有効になります。 |
EnableScrollingWithPageChange | ページの切り替え時にリストを開始してスクロールするかどうかは、RecyclerView/GridView/ListView をバインドする場合にのみ有効です。起動後、リストはリアルタイムでスクロールするため、サムネイル ビューは空に表示されず、転送先が確実に閉じられます。閉じているときの一時的なアニメーション、デフォルトではオフです。 |
進行状況インジケーター | リソースの読み込み進行状況インジケーター (ProgressPieIndicator と ProgressBarIndicator はデフォルトで組み込まれています)。 IProgressIndicator インターフェイスを実装して、独自のリソース読み込み進行状況インジケーターを定義できます。 |
インデックスインジケーター | リソース インデックス インジケーター (CircleIndexIndicator と NumberIndexIndicator はデフォルトで組み込まれています)。 IIndexIndicator インターフェイスを実装して、独自のリソース インデックス インジケーターを定義できます。 |
画像ローダー | リソースローダー。 ImageLoader インターフェイスを実装して、独自のイメージ ローダーを定義できます。 |
画像ID | RecyclerView または ListView の ItemView の ImageView ID |
カスタムビュー | ユーザー定義ビュー。転送先によって表示されるパネルに配置されます。 |
リストビュー | ListView または GridView を使用して画像を配置および表示している場合は、ListView または GridView をbindListView() メソッドに渡す必要があります。 |
リサイクル業者ビュー | RecyclerView を使用して画像を配置して表示する場合は、RecyclerView をbindRecyclerView() メソッドに渡す必要があります。 |
画像表示 | このライブラリの関数を 1 つの ImageView に対してのみ使用する場合、またはインターフェイス上の 1 つの ImageView がアルバムの表紙である場合は、bindImageView(...) またはそのオーバーロードされたメソッドを使用することでニーズを満たすことができます。 |
方法 | 説明する |
---|---|
getDefault(コンテキスト) | 転送先インスタンスの取得 |
適用(構成) | 設定パラメータオブジェクトを転送先インスタンスに適用する |
見せる() | 転送先を開く/表示する |
ショー(リスナー) | 転送先のオープン/表示と表示/クローズ状態の監視 |
isShow() | 譲受人に表示するかどうか |
却下する() | 近い譲渡先 |
クリア() | 写真やビデオなどのキャッシュされたファイルをすべてクリアします |
破壊する() | メモリリークを防ぐために転送先が使用するリソースを破棄します。 |
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.