/**
*
*/
package com.hupu.games.activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.ScrollView;
import android.widget.TextView;
import com.hupu.games.R;
import com.hupu.games.adapter.PlayerInfoListAdapter;
import com.hupu.games.adapter.PlayerinfoGridListAdapter;
import com.hupu.games.common.HuPuRes;
import com.hupu.games.common.HupuLog;
import com.hupu.games.data.game.basketball.NbaPlayerInfoReq;
import com.hupu.games.view.HScrollView;
import com.hupu.games.view.HupuPinnedHeaderListView;
import com.hupu.http.HupuHttpHandler;
import com.koushikdutta.urlimageviewhelper.UrlImageViewHelper;
/**
* @author papa 球员详情页
*/
public class NBAPlayerInfoActivity extends HupuBaseActivity {
/** 对该球员的打分及评论 */
HupuPinnedHeaderListView mListView;
//PlayerInfoListAdapter mAdapter;
PlayerInfoListAdapter mAdapter;
ImageView playerHeader;
TextView txtZhName,txtEnName,txtNumAndPositionAndTeam,txtAge,txtHeight,txtWeight,txtBirth,txtDraft,txtCollege,txtSalary,txtContract;
ScrollView headScroll;
int pid;
View progress;
GridView mGridListView;
PlayerinfoGridListAdapter mGridAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
pid = getIntent().getIntExtra("pid", 0);
setContentView(R.layout.layout_player_info);
progress = (ProgressBar) findViewById(R.id.probar);
mListView = (HupuPinnedHeaderListView) findViewById(R.id.list_player_info);
mListView.setOnItemClickListener(new PlayerListClick());
header = LayoutInflater.from(this).inflate(
R.layout.item_player_info_header, null);
initHeadView();
mListView.addHeaderView(header);
PlayerListViewTouchLinstener linstener = new PlayerListViewTouchLinstener();
mListView.setOnTouchListener(linstener);
mAdapter = new PlayerInfoListAdapter(this,linstener);
mListView.setAdapter(mAdapter);
reqPlayerInfo();
setOnClickListener(R.id.btn_back);
}
View header;
float fontSize;
float bigFontSize;
private void initHeadView() {
headScroll = (ScrollView) header.findViewById(R.id.head_scroll);
playerHeader = (ImageView) header.findViewById(R.id.player_header);
mGridListView = (GridView) header.findViewById(R.id.grid_data_info);
txtZhName = (TextView) header.findViewById(R.id.player_name_zh);
txtEnName = (TextView) header.findViewById(R.id.player_name_en);
txtNumAndPositionAndTeam = (TextView) header.findViewById(R.id.player_num_team);
txtAge = (TextView) header.findViewById(R.id.age_info);
txtHeight = (TextView) header.findViewById(R.id.height_info);
txtWeight = (TextView) header.findViewById(R.id.weight_info);
txtBirth = (TextView) header.findViewById(R.id.birth_date_info);
txtDraft = (TextView) header.findViewById(R.id.draft_info);
txtCollege = (TextView) header.findViewById(R.id.college_info);
txtSalary = (TextView) header.findViewById(R.id.salary_info);
txtContract = (TextView) header.findViewById(R.id.contract_info);
headScroll.setVisibility(View.GONE);
}
private void setProfileData(NbaPlayerInfoReq entity) {
headScroll.setVisibility(View.VISIBLE);
UrlImageViewHelper.setUrlDrawable(playerHeader,
entity.p_header, R.drawable.bg_no_player_pic);
txtZhName.setText(entity.p_name);
txtEnName.setText(entity.p_en_name);
txtNumAndPositionAndTeam.setText(entity.p_number+" "+entity.p_position+" "+entity.t_name);
txtAge.setText(entity.p_age);
txtHeight.setText(entity.p_height);
txtWeight.setText(entity.p_weight);
txtBirth.setText(entity.p_birth_date);
txtDraft.setText(entity.p_draft);
txtCollege.setText(entity.p_college);
txtSalary.setText(entity.p_salary);
txtContract.setText(entity.p_contract);
progress.setVisibility(View.GONE);
mAdapter.setData(infoReq);
mListView.setAdapter(mAdapter);
mAdapter.notifyDataSetChanged();
((TextView)findViewById(R.id.txt_title)).setText(entity.p_s_name);
mGridAdapter = new PlayerinfoGridListAdapter(this);
mGridAdapter.setData(infoReq.infoDateList);
mGridListView.setAdapter(mGridAdapter);
if (infoReq.infoDateList == null || infoReq.infoDateList.size() == 0) {
mGridListView.setVisibility(View.GONE);
}
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
}
public static int REQ_MY_RATING = 531;
NbaPlayerInfoReq infoReq;
@Override
public void onReqResponse(Object o, int methodId) {
super.onReqResponse(o, methodId);
if (o != null) {
infoReq = (NbaPlayerInfoReq) o;
setProfileData(infoReq);
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
back();
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
public void onErrResponse(Throwable error,int type) {
super.onErrResponse(error, type);
showToast(getString(R.string.no_player_info));
progress.setVisibility(View.GONE);
headScroll.setVisibility(View.GONE);
back();
}
@Override
public void treatClickEvent(int id) {
super.treatClickEvent(id);
switch (id) {
case R.id.btn_back:
back();
break;
}
}
private void back() {
finish();
}
/**
* 获取用户
* */
private void reqPlayerInfo() {
initParameter();
mParams.add("player_id", "" + pid);
sendRequest(HuPuRes.REQ_METHOD_GET_NBA_PLAYER_INFO, mParams,
new HupuHttpHandler(this));
}
class PlayerListClick implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int pos,
long arg3) {
int tid = mAdapter.getItemAt(pos-1).t_id;
if (tid > 0 && tid<31) {
sendUmeng(HuPuRes.UMENG_EVENT_NBAPLAYERS, HuPuRes.UMENG_EVENT_PLAYER_DETAIL,HuPuRes.UMENG_VALUE_TAP_ONE_TEAM);
Intent in =new Intent(NBAPlayerInfoActivity.this,NBATeamActivity.class);
in.putExtra("tid", tid);
startActivity(in);
}
}
}
public class PlayerListViewTouchLinstener implements View.OnTouchListener {
float historicX = Float.NaN;
static final int DELTA_ON_CLICK = 20;
float x0;
float y0;
HScrollView scroll;
HScrollView currentScroll;
public void setScrollView(HScrollView scrollView){
scroll = scrollView;
}
@Override
public boolean onTouch(View arg0, MotionEvent event) {
//当在listView控件上touch时,将这个touch的事件分发给 ScrollView
if(scroll != null)
scroll.onTouchEvent(event);
if (mAdapter.ob1.getListSize() >=30) {
mAdapter.ob1.clear();
mAdapter.notifyDataSetChanged();
}
//HupuLog.e("papa", "size---------"+mAdapter.ob1.getListSize());
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x0=event.getX();
y0=event.getY();
break;
case MotionEvent.ACTION_UP:
float cx = event.getX();
float cy = event.getY();
if(Math.abs(cx - x0)>DELTA_ON_CLICK || Math.abs(cy - y0)>DELTA_ON_CLICK )
return true;
break;
}
return false;
}
}
}