朋友推荐的一首非常好听的歌曲送给大家,希望你们会喜欢。
现在市场上很多程序都会有个人中心界面,有个人中心就会有很多个人信息的设置,关于个人信息的存储以及以哪种方式存储更好的保证信息的安全,今天先不谈,说一说修改个人资料中常见的修改头像。最近的项目重构中就遇上了这样一个问题:图片上传服务器之后,界面上的头像图片不能及时更新的问题(拿到设置的bitmap设置好头像之后返回该界面显示的竟然还是原来的头像)
问题分析:这次项目重构用的是picasso框架来加载图片,我所写的界面加载头像的方法是每次进入界面时利用存储的头像url从网络获取头像,直接在浏览器上打开头像的url地址也显示已经更换了头像,按道理讲再从网络获取一遍应该会更新啊!分析了一下应该是picasso自带缓存的原因,访问同一个地址在缓存中有的话,picasso会直接从缓存中取图片。
问题解决:解决的方法有很多,我用了一个比较直接的方法,在存储用户信息的类里添加一个用于存储用户头像bitmap对象的静态变量,设置完头像之后用它来存储一下头像,在设置头像的时候先判断该变量是否为null若不为null就直接将它设置为头像,否则再从网络获取。
当然我这种方法以及这种设置头像的做法(每次都从网络获取的方式)有很多的不妥之处。例如每次都会从网络获取浪费流量,但实际不用担心(picasso自带缓存嘛)。本人技术小白,如果有大神发现文中有什么不对的地方,望一定指正,或者有更好的方法有更加优秀的经验,请一定要指教()。
这里给出设置头像的关键代码:
privatevoidchoseHeadImageFromGallery(){
IntentintentFromGallery=newIntent();
//设置文件类型
intentFromGallery.setType("image/*");
intentFromGallery.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intentFromGallery,CODE_GALLERY_REQUEST);
}
/**
*裁剪原始的图片
*/
publicvoidcropRawPhoto(Uriuri){