package cn.eoe.app.view;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Context;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import cn.eoe.app.R;
import cn.eoe.app.entity.UserResponse;
import cn.eoe.app.utils.ImageUtil;
import cn.eoe.app.utils.ImageUtil.ImageCallback;
public class UserIntroFragment extends Fragment {
UserResponse mUserResponse;
private ImageView img;
private TextView txtName;
private TextView txtRegTime;
private TextView txtEP;
private TextView txtEM;
private GridView gvGrid;
SimpleAdapter mAdapter;
private List<Map<String, Object>> mList;
private Context mContext;
public UserIntroFragment(UserResponse result) {
mUserResponse = result;
}
// [start]继承方法
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
mContext = inflater.getContext();
View v = inflater.inflate(R.layout.user_center_intro_fragment, null);
initControl(v);
initGridView();
setControl();
return v;
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
// [end]
private void initControl(View v) {
img = (ImageView) v.findViewById(R.id.user_imageview_icon);
txtName = (TextView) v.findViewById(R.id.user_textview_name);
txtRegTime = (TextView) v.findViewById(R.id.user_textview_reg_time);
txtEP = (TextView) v.findViewById(R.id.user_textview_e_p);
txtEM = (TextView) v.findViewById(R.id.user_textview_e_m);
gvGrid = (GridView) v.findViewById(R.id.user_gridview_medal);
}
private void initGridView() {
getData();
mAdapter = new SimpleAdapter(mContext, mList,
R.layout.user_gridview_item_medal, new String[] { "img" },
new int[] { R.id.user_imageview_medal }) {
@Override
public void setViewImage(ImageView v, String value) {
// TODO Auto-generated method stub
super.setViewImage(v, value);
ImageUtil.setThumbnailView(value, v, mContext,
new imageCallback(), false);
}
class imageCallback implements ImageCallback {
@Override
public void loadImage(Bitmap bitmap, String imagePath) {
// TODO Auto-generated method stub
try {
ImageView img = (ImageView) gvGrid
.findViewWithTag(imagePath);
img.setImageBitmap(bitmap);
} catch (NullPointerException ex) {
Log.e("error", "ImageView = null");
}
}
}
};
gvGrid.setAdapter(mAdapter);
}
private void getData() {
mList = new ArrayList<Map<String, Object>>();
for (int i = 0, count = mUserResponse.getInfo().getIcon().size(); i < count; i++) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("img", mUserResponse.getInfo().getIcon().get(i).getImg());
mList.add(map);
}
}
private void setControl() {
txtName.setText(mUserResponse.getInfo().getName());
txtRegTime.setText(mUserResponse.getInfo().getReg_at());
txtEP.setText(getString(R.string.user_center_e_coin, mUserResponse.getInfo().getEoe_m()));
txtEM.setText(getString(R.string.user_center_e_reputation, mUserResponse.getInfo().getEoe_p()));
String imgUrl = mUserResponse.getInfo().getHead_image_url()
.replaceAll("(?<==)small", "middle");
ImageUtil.setThumbnailView(imgUrl, img, mContext,
new myImageCallBack(), true);
}
class myImageCallBack implements ImageCallback {
@Override
public void loadImage(Bitmap bitmap, String imagePath) {
// TODO Auto-generated method stub
img.setImageBitmap(bitmap);
}
}
}