content: /*
   * 官网地站:http://www.mob.com
   * 技术支持QQ: 4006852216
   * 官方微信:ShareSDK   （如果发布新版本的话，我们将会第一时间通过微信将版本更新内容推送给您。如果使用过程中有任何问题，也可以通过微信与我们取得联系，我们将会在24小时内给予回复）
   *
   * Copyright (c) 2013年 mob.com. All rights reserved.
   */
  
  package cn.sharesdk.onekeyshare.themes.classic;
  
  import static com.mob.tools.utils.R.getStringRes;
  import android.content.Context;
  import android.graphics.drawable.Drawable;
  import android.util.TypedValue;
  import android.view.Gravity;
  import android.view.View;
  import android.widget.LinearLayout;
  import android.widget.ProgressBar;
  import android.widget.TextView;
  
  import com.mob.tools.utils.R;
  
  /** 下拉刷新的头部控件  */
  public class PRTHeader extends LinearLayout {
  	private static final int DESIGN_SCREEN_WIDTH = 720;
  	private static final int DESIGN_AVATAR_WIDTH = 64;
  	private static final int DESIGN_AVATAR_PADDING = 24;
  
  	private TextView tvHeader;
  	private RotateImageView ivArrow;
  	private ProgressBar pbRefreshing;
  
  	public PRTHeader(Context context) {
  		super(context);
  		int[] size = R.getScreenSize(context);
  		float screenWidth = size[0] < size[1] ? size[0] : size[1];
  		float ratio = screenWidth / DESIGN_SCREEN_WIDTH;
  
  		setOrientation(VERTICAL);
  
  		LinearLayout llInner = new LinearLayout(context);
  		LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  		lp.gravity = Gravity.CENTER_HORIZONTAL;
  		addView(llInner, lp);
  
  		ivArrow = new RotateImageView(context);
  		int resId = R.getBitmapRes(context, "ssdk_oks_ptr_ptr");
  		if (resId > 0) {
  			ivArrow.setImageResource(resId);
  		}
  		int avatarWidth = (int) (ratio * DESIGN_AVATAR_WIDTH);
  		lp = new LayoutParams(avatarWidth, avatarWidth);
  		lp.gravity = Gravity.CENTER_VERTICAL;
  		int avataPadding = (int) (ratio * DESIGN_AVATAR_PADDING);
  		lp.topMargin = lp.bottomMargin = avataPadding;
  		llInner.addView(ivArrow, lp);
  
  		pbRefreshing = new ProgressBar(context);
  		resId = R.getBitmapRes(context, "ssdk_oks_classic_progressbar");
  		Drawable pbdrawable = context.getResources().getDrawable(resId);
  		pbRefreshing.setIndeterminateDrawable(pbdrawable);
  		llInner.addView(pbRefreshing, lp);
  		pbRefreshing.setVisibility(View.GONE);
  
  		tvHeader = new TextView(getContext());
  		tvHeader.setTextSize(TypedValue.COMPLEX_UNIT_SP, 18);
  		tvHeader.setPadding(avataPadding, 0, avataPadding, 0);
  		tvHeader.setTextColor(0xff09bb07);
  		lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
  		lp.gravity = Gravity.CENTER_VERTICAL;
  		llInner.addView(tvHeader, lp);
  	}
  
  	public void onPullDown(int percent) {
  		if (percent > 100) {
  			int degree = (percent - 100) * 180 / 20;
  			if (degree > 180) {
  				degree = 180;
  			}
  			if (degree < 0) {
  				degree = 0;
  			}
  			ivArrow.setRotation(degree);
  		} else {
  			ivArrow.setRotation(0);
  		}
  
  		if (percent < 100) {
  			int resId = getStringRes(getContext(), "ssdk_oks_pull_to_refresh");
  			if (resId > 0) {
  				tvHeader.setText(resId);
  			}
  		} else {
  			int resId = getStringRes(getContext(), "ssdk_oks_release_to_refresh");
  			if (resId > 0) {
  				tvHeader.setText(resId);
  			}
  		}
  	}
  
  	public void onRequest() {
  		ivArrow.setVisibility(View.GONE);
  		pbRefreshing.setVisibility(View.VISIBLE);
  		int resId = getStringRes(getContext(), "ssdk_oks_refreshing");
  		if (resId > 0) {
  			tvHeader.setText(resId);
  		}
  	}
  
  	public void reverse() {
  		pbRefreshing.setVisibility(View.GONE);
  		ivArrow.setRotation(180);
  		ivArrow.setVisibility(View.VISIBLE);
  	}
  
  }
  