最近一段时间,主要是在解一些bug,所以精力都分散在了不同的问题上。也是很久一段时间没有写blog了,这里记录一下最近debug过程中的一些知识点。
1. 使用CircleImageView时,Glide第一次无法加载出正常的图片
这个 bug的具体原因,我还不太清楚,留到以后再探讨了。后来参考StackOverflow上的回答解决了问题。主要的代码片段如下
Glide.with(this.getApplicationContext())
.load(url)
.asBitmap()
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(R.drawable.default_avatar)
.into(new SimpleTarget<Bitmap>() {
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation) {
mCircleImageView.setImageBitmap(resource);//
}
});
2. 使用ProgressBar时,如何动态改变其颜色?
这个需求的场景类似于,网络断开时应该对云存储空间占用量显示无效掉。具体的方法如下
mProgressBar.getProgressDrawable().clearColorFilter();//清除颜色更改
mProgressBar.getProgressDrawable().setColorFilter(Color.GRAY, PorterDuff.Mode.SRC_IN);//设置进度条为灰色(整个都会变成灰色),表示显示无效
3. ViewPager的使用注意事项
ViewPager和Fragment的配合使用可以实现多页面切换的效果,网上相关的教程非常多。在使用过程中,我发现ViewPager使用了缓存机制来处理Fragment。同一时间,ViewPager会缓存当前Fragment以及相邻左右的Fragment。所以某一个Fragment的onStart()的调用时机并不一定是成为ViewPager的当前显示页,相邻的Fragment被点击也会导致它被调用。而且如果Fragment存在于缓存中,其onStart()便不会再次调用。
发表评论