package org.aisen.weibo.sina.ui.widget; import org.aisen.weibo.sina.R; import org.aisen.weibo.sina.support.bean.WallpaperBean; import org.android.loader.BitmapLoader; import org.android.loader.core.ImageConfig; import org.android.loader.download.AssetsDownloader; import org.android.loader.download.SdcardDownloader; import android.content.Context; import android.graphics.Canvas; import android.util.AttributeSet; import android.widget.ImageView; public class WallpaperSettingsImageView extends ImageView { private WallpaperBean wallpaper; private boolean set; private ImageConfig imageConfig; public WallpaperSettingsImageView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public WallpaperSettingsImageView(Context context, AttributeSet attrs) { super(context, attrs); } public WallpaperSettingsImageView(Context context) { super(context); } public void setWallpaper(WallpaperBean wallpaper) { this.wallpaper = wallpaper; set = false; invalidate(); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); if (!set && getWidth() > 0 && getHeight() > 0 && wallpaper != null) { set = true; if (imageConfig == null) imageConfig = new ImageConfig(); if ("1".equals(wallpaper.getType())) { imageConfig.setId("def_wallpaper"); imageConfig.setDownloaderClass(AssetsDownloader.class); imageConfig.setLoadingBitmapRes(R.drawable.bg_timeline_loading); imageConfig.setLoadfaildBitmapRes(R.drawable.bg_timeline_loading); imageConfig.setMaxWidth(getWidth()); imageConfig.setMaxHeight(getHeight()); BitmapLoader.getInstance().display(null, wallpaper.getPath(), this, imageConfig); } else if ("100".equals(wallpaper.getType())) { imageConfig.setId("github_def_wallpaper"); imageConfig.setDownloaderClass(SdcardDownloader.class); imageConfig.setLoadingBitmapRes(R.drawable.bg_timeline_loading); imageConfig.setLoadfaildBitmapRes(R.drawable.bg_timeline_loading); imageConfig.setMaxWidth(getWidth()); imageConfig.setMaxHeight(getHeight()); BitmapLoader.getInstance().display(null, wallpaper.getPath(), this, imageConfig); } } } }