基于Glide V4.0封裝的GlideImageView,可監(jiān)聽(tīng)加載圖片時(shí)的進(jìn)度

GlideImageView 是基于Glide V4.0設(shè)計(jì)的,實(shí)現(xiàn)如下特性:

1、通過(guò)提供的屬性可以設(shè)置圖片的圓角、邊框。
2、可以設(shè)置點(diǎn)擊觸摸圖片時(shí)的顏色、透明度。
3、一行代碼加載來(lái)自網(wǎng)絡(luò)、res、SDCard中的圖片,可加載成圓形。
4、可以監(jiān)聽(tīng)加載圖片時(shí)的進(jìn)度。

下面這張圖是設(shè)置了圖片的圓角、邊框并設(shè)置了觸摸圖片時(shí)的顏色

GitHub地址

APK下載地址,去手機(jī)上體驗(yàn)吧 (?)

具體使用說(shuō)明如下

Gradle:

compile 'com.sunfusheng:glideimageview:1.0.0'

Maven:

<dependency>
  <groupId>com.sunfusheng</groupId>
  <artifactId>glideimageview</artifactId>
  <version>1.0.0</version>
  <type>pom</type>
</dependency>

ShapeImageView 和 GlideImageView 共同的屬性

該庫(kù)提供了一個(gè)ShapeImageView類,可以在xml當(dāng)中,也可以在代碼中設(shè)置圖片的一些屬性,
當(dāng)然這些屬性也可以在GlideImageView上面設(shè)置,具體屬性如下

Attribute 屬性 Description 描述
siv_border_color 邊框顏色
siv_border_width 邊框?qū)挾?/td>
siv_pressed_color 觸摸圖片時(shí)的顏色
siv_pressed_alpha 觸摸圖片時(shí)的顏色透明度: 0.0f - 1.0f
siv_radius 圓角弧度
siv_shape_type 兩種形狀類型:默認(rèn)是0:rectangle、1:circle

下面是在xml中和代碼中設(shè)置的效果

xml中設(shè)置 代碼中設(shè)置

一行代碼加載來(lái)自網(wǎng)絡(luò)、res、SDCard中圖片

public GlideImageView loadImage(String url, int placeholderResId);
public GlideImageView loadLocalImage(@DrawableRes int resId, int placeholderResId); 
public GlideImageView loadLocalImage(String localPath, int placeholderResId);

一行代碼加載來(lái)自網(wǎng)絡(luò)、res、SDCard中圖片成圓形

public GlideImageView loadCircleImage(String url, int placeholderResId); 
public GlideImageView loadLocalCircleImage(int resId, int placeholderResId);
public GlideImageView loadLocalCircleImage(String localPath, int placeholderResId);

如果你覺(jué)得上面的方法還不能滿足你,那么你可以通過(guò)下面的方法追加自己想要的屬性來(lái)加載圖片

RequestOptions requestOptions(int placeholderResId);
RequestOptions circleRequestOptions(int placeholderResId);

GlideImageView load(int resId, RequestOptions options);
GlideImageView load(Uri uri, RequestOptions options);
GlideImageView load(String url, RequestOptions options);

如果你還是覺(jué)得得不到滿足,好吧,我提供了GlideImageLoader類加載圖片,比如這樣加載圖片:先加載縮略圖再加載高清圖片,并監(jiān)聽(tīng)加載的進(jìn)度

private void loadImage(String image_url_thumbnail, String image_url) {
    RequestOptions requestOptions = glideImageView.requestOptions(R.color.black)
            .centerCrop()
            .skipMemoryCache(true) // 跳過(guò)內(nèi)存緩存
            .diskCacheStrategy(DiskCacheStrategy.NONE); // 不緩存到SDCard中

    glideImageView.getImageLoader().setOnGlideImageViewListener(image_url, new OnGlideImageViewListener() {
        @Override
        public void onProgress(int percent, boolean isDone, GlideException exception) {
            progressView.setProgress(percent);
            progressView.setVisibility(isDone ? View.GONE : View.VISIBLE);
        }
    });

    glideImageView.getImageLoader().requestBuilder(image_url, requestOptions)
            .thumbnail(Glide.with(ImageActivity.this) // 加載縮略圖
                    .load(image_url_thumbnail)
                    .apply(requestOptions))
            .transition(DrawableTransitionOptions.withCrossFade()) // 動(dòng)畫(huà)漸變加載
            .into(glideImageView);
}

該庫(kù)提供兩種監(jiān)聽(tīng)加載圖片進(jìn)度的Listener,總有一款是你想要的

public interface OnGlideImageViewListener {
    void onProgress(int percent, boolean isDone, GlideException exception);
}

public interface OnProgressListener {
    void onProgress(String imageUrl, long bytesRead, long totalBytes, boolean isDone, GlideException exception);
}

GitHub地址

關(guān)于我

個(gè)人郵箱:sfsheng0322@126.com

GitHub主頁(yè)

簡(jiǎn)書(shū)主頁(yè)

個(gè)人博客

新浪微博

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,075評(píng)論 25 708
  • ¥開(kāi)啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開(kāi)一個(gè)線程,因...
    小菜c閱讀 6,510評(píng)論 0 17
  • 今天突然地想起來(lái)前幾天在他的另一個(gè)支付寶賬號(hào)上轉(zhuǎn)帳記錄上看到一個(gè)頭像覺(jué)得熟悉,當(dāng)時(shí)沒(méi)多去想,以為是他玩游戲里面的人...
    伊志如此閱讀 194評(píng)論 0 0
  • 我的爸爸 爸爸,據(jù)他說(shuō)他做過(guò)短暫的“代課老師”,此段經(jīng)歷具體內(nèi)容不詳 爸爸的職業(yè)在我的記憶里,從工人,到車間主任,...
    JohnsonZH閱讀 288評(píng)論 0 1