content: /*
   * 官网地站:http://www.mob.com
   * 技术支持QQ: 4006852216
   * 官方微信:ShareSDK   （如果发布新版本的话，我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题，也可以通过微信与我们取得联系，我们将会在24小时内给予回复）
   *
   * Copyright (c) 2013年 mob.com. All rights reserved.
   */
  
  package cn.sharesdk.onekeyshare.themes.classic;
  
  import android.content.Context;
  import android.graphics.Bitmap;
  import android.graphics.BitmapFactory;
  import android.util.TypedValue;
  import android.view.Gravity;
  import android.widget.ImageView;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  import cn.sharesdk.onekeyshare.themes.classic.FriendAdapter.Following;
  
  import com.mob.tools.gui.AsyncImageView;
  import com.mob.tools.gui.BitmapProcessor;
  import com.mob.tools.utils.R;
  
  /** 好友列表的item */
  public class FriendListItem extends LinearLayout {
  	private static final int DESIGN_AVATAR_WIDTH = 64;
  	private static final int DESIGN_AVATAR_PADDING = 24;
  	private static final int DESIGN_ITEM_HEIGHT = 96;
  	private static final int DESIGN_ITEM_PADDING = 20;
  
  	private ImageView ivCheck;
  	private AsyncImageView aivIcon;
  	private TextView tvName;
  	/** 好友列表中，被选中的checkbox图标 */
  	private Bitmap bmChd;
  	/** 好友列表中，没选中的checkbox图标 */
  	private Bitmap bmUnch;
  
  	public FriendListItem(Context context, float ratio) {
  		super(context);
  		int itemPadding = (int) (ratio * DESIGN_ITEM_PADDING);
  		setPadding(itemPadding, 0, itemPadding, 0);
  		setMinimumHeight((int) (ratio * DESIGN_ITEM_HEIGHT));
  		setBackgroundColor(0xffffffff);
  
  		ivCheck = new ImageView(context);
  		LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
  				LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  		lp.gravity = Gravity.CENTER_VERTICAL;
  		addView(ivCheck, lp);
  
  		aivIcon = new AsyncImageView(context);
  		int avatarWidth = (int) (ratio * DESIGN_AVATAR_WIDTH);
  		lp = new LinearLayout.LayoutParams(avatarWidth, avatarWidth);
  		lp.gravity = Gravity.CENTER_VERTICAL;
  		int avatarMargin = (int) (ratio * DESIGN_AVATAR_PADDING);
  		lp.setMargins(avatarMargin, 0, avatarMargin, 0);
  		addView(aivIcon, lp);
  
  		tvName = new TextView(context);
  		tvName.setTextColor(0xff000000);
  		tvName.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
  		tvName.setSingleLine();
  		lp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  		lp.gravity = Gravity.CENTER_VERTICAL;
  		lp.weight = 1;
  		addView(tvName, lp);
  
  		int resId = R.getBitmapRes(context, "ssdk_oks_classic_check_checked");
  		if (resId > 0) {
  			bmChd = BitmapFactory.decodeResource(context.getResources(), resId);
  		}
  		resId = R.getBitmapRes(getContext(), "ssdk_oks_classic_check_default");
  		if (resId > 0) {
  			bmUnch = BitmapFactory.decodeResource(context.getResources(), resId);
  		}
  	}
  
  	public void update(Following following, boolean fling) {
  		tvName.setText(following.screenName);
  		ivCheck.setImageBitmap(following.checked ? bmChd : bmUnch);
  		if (aivIcon != null) {
  			if (fling) {
  				Bitmap bm = BitmapProcessor.getBitmapFromCache(following.icon);
  				if (bm != null && !bm.isRecycled()) {
  					aivIcon.setImageBitmap(bm);
  				} else {
  					aivIcon.execute(null, 0);
  				}
  			} else {
  				aivIcon.execute(following.icon, 0);
  			}
  		}
  	}
  
  }
  