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

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

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

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


解决方案:

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

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

3.下面看具体实现代码


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

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


@Override
        protected void onPreExecute() {
            super.onPreExecute();

            mScaleType = mview.getScaleType(); //获取scaletype
            background = 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);
            }
            //设置mview
            mview.setImageResource(R.drawable.morenwenzi);
            mview.setScaleType(ImageView.ScaleType.CENTER_CROP);

        }




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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值