package com.kaixin.android.activity;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.content.Intent;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.RelativeLayout.LayoutParams;
import android.widget.TextView;
import com.kaixin.android.KXActivity;
import com.kaixin.android.R;
import com.kaixin.android.async.BitmapDownloaderTask;
import com.kaixin.android.common.Constants;
import com.kaixin.android.result.PhotoDetailResult;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
/**
* 照片列表显示类
*
* @author gyz
*
*/
public class PhotoListActivity extends KXActivity {
private Button mBack;
private TextView mTitle;
private GridView mDisplay;
private String mUid;// 照片所属用户的ID
private String mName;// 照片所属用户的姓名
private int mAvatar;// 照片所属用户的头像
private List<PhotoDetailResult> mPhotoResult;// 照片的数据
private int mAlbumId;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.photolist_activity);
findViewById();
setListener();
init();
}
private void findViewById() {
mBack = (Button) findViewById(R.id.photolist_back);
mTitle = (TextView) findViewById(R.id.photolist_title);
mDisplay = (GridView) findViewById(R.id.photolist_display);
}
@Override
protected void onResume() {
super.onResume();
}
private void setListener() {
mBack.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// 关闭当前界面
finish();
}
});
mDisplay.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
Intent intent = new Intent();
// 根据图片属性跳转界面,0为头像照片,其他为普通照片,并传递相关数据
/*switch (mPhotoResult.getType()) {
case 0:
intent.setClass(PhotoListActivity.this,
PhotoAvatarDetailActivity.class);
intent.putExtra("uid", mUid);
intent.putExtra("name", mName);
intent.putExtra("avatar", mAvatar);
intent.putExtra("result", mPhotoResult);
intent.putExtra("position", position);
startActivity(intent);
break;
default:*/
intent.setClass(PhotoListActivity.this,
PhotoPictureDetailActivity.class);
intent.putExtra("uid", mUid);
intent.putExtra("name", mName);
intent.putExtra("albumid", mAlbumId);
intent.putExtra("avatar", mAvatar);
intent.putExtra("result", (Serializable)mPhotoResult);
intent.putExtra("position", position);
startActivityForResult(intent, 0);
/*break;
}*/
}
});
}
@SuppressWarnings("unchecked")
private void init() {
// 获取照片所属用户的ID、姓名、头像以及照片数据
mUid = getIntent().getStringExtra("uid");
mAlbumId = getIntent().getIntExtra("albumid", -1);
mName = getIntent().getStringExtra("name");
mAvatar = getIntent().getIntExtra("avatar", -1);
mPhotoResult = (List<PhotoDetailResult>)getIntent().getSerializableExtra("result");
// 添加照片标题
mTitle.setText(mName);
// 添加适配器
mDisplay.setAdapter(new PhotoListAdapter());
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
// 关闭当前界面
finish();
}
}
private class PhotoListAdapter extends BaseAdapter {
public int getCount() {
return mPhotoResult.size();
}
public Object getItem(int position) {
return mPhotoResult.get(position);
}
public long getItemId(int position) {
return position;
}
@SuppressWarnings("unchecked")
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
convertView = LayoutInflater.from(PhotoListActivity.this)
.inflate(R.layout.photolist_activity_item, null);
holder = new ViewHolder();
holder.image = (ImageView) convertView
.findViewById(R.id.photolist_item_img);
holder.image_bg = (ImageView) convertView
.findViewById(R.id.photolist_item_img_bg);
// padding为40dip换算成px值
int padding = (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_DIP, 40, PhotoListActivity.this
.getResources().getDisplayMetrics());
// 设置图片显示为屏幕宽度的1/4大小
LayoutParams params = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.width = (mScreenWidth - padding) / 4;
params.height = (mScreenWidth - padding) / 4;
holder.image_bg.setLayoutParams(params);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String result = mPhotoResult.get(position).getPhoto_filename();
// 根据照片的类型获取照片
/*if (mPhotoResult.getType() == 0) {
holder.image.setImageBitmap(mKXApplication.getAvatar(result
.getImage()));
} else {
holder.image.setImageBitmap(mKXApplication.getPhoto(result
.getImage()));
}*/
// imageLoader.displayImage(uri, imageView);
// BitmapDownloaderTask.loadImageFromUrl(url, sc);
/*BitmapDownloaderTask downImgTask = new BitmapDownloaderTask(holder.image);
Map<String, String> map = new HashMap<String, String>();
map.put("albumId", String.valueOf(mAlbumId));
map.put("filename", result);
map.put("original", String.valueOf(false));
map.put("uid", mUid);
downImgTask.execute(map);*/
imageLoader.displayImage(Constants.getImageUrl() + result, holder.image);
// holder.image.setImageBitmap(CallService.getPhoto(mAlbumId, result, false, mUid));
return convertView;
}
class ViewHolder {
ImageView image_bg;
ImageView image;
}
}
}