android glide 全局,Android读书笔记(十) Glide、下拉刷新、全局获取Context

1.Glide图片加载和缓存库的基本用法

使用之前需要设置一些内容。添加相应的库,在app/build.gradle中添加如下内容

dependencies { compile 'com.github.bumptech.glide:glide:4.3.1' annotationProcessor 'com.github.bumptech.glide:compiler:4.3.1' }

打开另一个build.gradle(项目根目录下的),在allprojects中添加如下内容

allprojects { repositories { mavenCentral() maven { url 'https://maven.google.com' }

jcenter()

}

}

设置完成。展示最基本的用法。

//加载一张图片在imageView上显示。

//with() context 没什么好说的

//load() myUrl 可以是图片的id,网络路径,本地路径 //into() imageView 展示图片的imageview Glide.with(context) .load(myUrl) .into(imageView);

如果现在想直接使用placeholder()等方法是使用不了的,要想直接使用,需要创建类并继承AppGlideModule,然后添加@GlideModule注解,点击Android studio菜单项Build→Rebuild Project,这时就能使用GlideApp类了。

@GlideModule

public final class MyAppGlideModule extends AppGlideModule{

}

//添加一张图片到imageView中,在图片没有加载完成时,使用placeholder()方法中设置的图片。

GlideApp.with(ABCActivity.this).load(url).placeholder(R.drawable.other).into(imageView);

//在图片没有加载完成时,imageView显示25%原图大小的缩略图。

GlideApp.with(ABCActivity.this).load(url).thumbnail(0.25f).into(imageView);

//清除磁盘缓存,需要运行在子线程中

GlideApp.get(ABCActivity.this).clearDiskCache();

//清除内存缓存

GlideApp.get(ABCActivity.this).clearMemory();

在android 6.0 及以上系统使用Glide时,请使用运行时权限。

2.下拉刷新SwipeRefreshLayout

在你需要进行下拉刷新的控件上嵌套SwipeRefreshLayout。我在imageView上嵌套了SwipeRefreshLayout。

android:id="@+id/srl"

android:layout_width="300dp"

android:layout_height="200dp"

android:layout_gravity="center_horizontal">

android:id="@+id/iv"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:layout_gravity="center_horizontal"

android:background="@color/colorPrimary" />

接下来,需要添加一点代码,来监听下拉。

//开一个线程来模拟数据加载,方便看到刷新的过程

srl.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {

@Override

public void onRefresh() {

new Thread(new Runnable() {

@Override

public void run() {

try {

Thread.sleep(1000);

} catch (InterruptedException e) {

e.printStackTrace();

}

runOnUiThread(new Runnable() {

@Override

public void run() {

//隐藏刷新进度条

srl.setRefreshing(false);

}

});

}

}).start();

}

});

3.全局获取Context

首先,创建一个类并继承Application。

public class MyApplication extends Application {

private static Context context;

@Override

public void onCreate() {

super.onCreate();

context = getApplicationContext();

}

public static Context getContext() {

return context;

}

}

然后,在AndroidManifest.xml文件中application下添加如下信息:

android:name="cn.xd.study.pull.MyApplication"

............>

使用。

MyApplication.getContext();

如果同时使用了litePal和自定义的Application,要在MyApplication的onCreate()方法中添加代码。

@Override

public void onCreate() {

super.onCreate();

context = getApplicationContext();

LitePal.initialize(context);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值