100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 图片加载未完成时的默认背景图处理(仅限自己封装的图片加载工具)

图片加载未完成时的默认背景图处理(仅限自己封装的图片加载工具)

时间:2019-10-03 21:48:01

相关推荐

图片加载未完成时的默认背景图处理(仅限自己封装的图片加载工具)

Android图片加载时,由于网络状况 图片大小 手机内存等情况会导致加载图片的时长不同,这时候就涉及到给ImagevVew设置默认图片的问题.

当然了,最简单的方法就是在每个使用ImageView的地方加上UI提供的默认背景图,最简单也是最麻烦的.

由于图片加载工具是自己动手写的,所以对于图片的操作都可以实现,故而想到了一个办法,如果你的默认背景图也是一个固定底图+logo的话,可以参考下这个思路

解决方案:

1.需要UI提供一个默认的底图(background),一个大小合适的logo(png格式,透明背景好处理);

2.将background作为底图,logo附在上面,这样background可随意改变大小而不至于变形,logo可根据对应的ScaleType设置

3.下面看具体实现代码

图片加载使用的是AsyncTask,因为图片加载完成后,显示的操作是在onPostExecute()方法中实现的,所以,可以在onPreExecute()中进行默认背景图的设置

在onPreExecute()方法中设置对应的background和ScaleType,具体代码如下:

@Overrideprotected void onPreExecute() {super.onPreExecute();mScaleType = mview.getScaleType(); //获取scaletypebackground = mview.getBackground(); //获取背景mDrawable = DPApplication.mContext.getResources().getDrawable(R.drawable.morenbeijing);if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {mview.setBackground(mDrawable);} else {mview.setBackgroundDrawable(mDrawable);}//设置mviewmview.setImageResource(R.drawable.morenwenzi);mview.setScaleType(ImageView.ScaleType.CENTER_CROP);}

总而言之,就是将原先的默认背景图拆分成两部分,底图+logo,这样不带文字的背景图层怎么变形都不会看出来,只需要将logo附在上面即可,简单又实用,已在正式项目中启用,实践效果不错!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。