Android开发中的一些零散纪录

= 1191

最近一段时间,主要是在解一些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()便不会再次调用。

发表评论