/** * $id$ * Copyright 2011-2012 Renren Inc. All rights reserved. */ package com.renren.api.connect.android.photos; import java.text.SimpleDateFormat; import java.util.Date; import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; /** * 对相片实体Bean的封装<br> * * 注:不继承ResponseBean * * @author sunting ting.sun@renren-inc.com * */ public class PhotoBean implements Parcelable { /** * 字段常量 */ private static final String KEY_PID = "pid"; private static final String KEY_FILE_NAME = "fileName"; private static final String KEY_AID = "aid"; private static final String KEY_UID = "uid"; private static final String KEY_CAPTION = "caption"; private static final String KEY_CREATE_TIME = "createTime"; private static final String KEY_VIEW_COUNT = "viewCount"; private static final String KEY_COMMENT_COUNT = "commentCount"; private static final String KEY_URL_TINY = "urlTiny"; private static final String KEY_URL_HEAD = "urlHead"; private static final String KEY_URL_LARGE = "urlLarge"; private static final String KEY_URL_MAIN = "urlMain"; private static final String KEY_CONTENT = "content"; /** * 照片id */ private long pid; /** * 照片文件名 注:此名代表上传到服务器上的建议文件名,系统实际上可忽略,这个参数的主要作用是在上传的时候识别文件类型,所以名字可以随便取, * 但类型一定要设置正确 */ private String fileName; /** * 照片所在相册id */ private long aid; /** * 一张照片的所有者用户id */ private long uid; /** * 照片的描述 */ private String caption; /** * 照片的创建时间 */ private Date createTime; /** * 照片的浏览数 */ private int viewCount; /** * 照片的评论数 */ private int commentCount; /** * 这几个都是同意图片不同的尺寸的图片的url地址,具体含义有点混乱,还在考证中 * * 100*150相册列表中的大小,url源地址 */ private String urlTiny; /** * 200*300 封面大小,url源地址 */ private String urlHead; /** * 600*900正常相片,url源地址 */ private String urlLarge; /** * 正常大小,url源地址 */ private String urlMain; /** * 图片的二进制数据 */ private byte[] content; public PhotoBean() { } public PhotoBean(long pid) { this.pid = pid; } public long getPid() { return pid; } public void setPid(long pid) { this.pid = pid; } public String getFileName() { return fileName; } public void setFileName(String fileName) { this.fileName = fileName; } public long getAid() { return aid; } public void setAid(long aid) { this.aid = aid; } public long getUid() { return uid; } public void setUid(long uid) { this.uid = uid; } public String getCaption() { return caption; } public void setCaption(String caption) { this.caption = caption; } public Date getCreateTime() { return createTime; } public void setCreateTime(Date createTime) { this.createTime = createTime; } public int getViewCount() { return viewCount; } public void setViewCount(int viewCount) { this.viewCount = viewCount; } public int getCommentCount() { return commentCount; } public void setCommentCount(int commentCount) { this.commentCount = commentCount; } public String getUrlTiny() { return urlTiny; } public void setUrlTiny(String urlTiny) { this.urlTiny = urlTiny; } public String getUrlHead() { return urlHead; } public void setUrlHead(String urlHead) { this.urlHead = urlHead; } public String getUrlLarge() { return urlLarge; } public void setUrlLarge(String urlLarge) { this.urlLarge = urlLarge; } public String getUrlMain() { return urlMain; } public void setUrlMain(String urlMain) { this.urlMain = urlMain; } public byte[] getContent() { return content; } public void setContent(byte[] content) { this.content = content; } @Override public String toString() { StringBuilder sb = new StringBuilder(); SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); sb.append(KEY_PID).append(" = ").append(pid).append("\r\n"); sb.append(KEY_AID).append(" = ").append(aid).append("\r\n"); sb.append(KEY_UID).append(" = ").append(uid).append("\r\n"); sb.append(KEY_CAPTION).append(" = ").append(caption).append("\r\n"); sb.append(KEY_CREATE_TIME).append(" = ").append(sdf.format(createTime)) .append("\r\n"); sb.append(KEY_VIEW_COUNT).append(" = ").append(viewCount) .append("\r\n"); sb.append(KEY_COMMENT_COUNT).append(" = ").append(commentCount) .append("\r\n"); sb.append(KEY_URL_TINY).append(" = ").append(urlTiny).append("\r\n"); sb.append(KEY_URL_HEAD).append(" = ").append(urlHead).append("\r\n"); sb.append(KEY_URL_LARGE).append(" = ").append(urlLarge).append("\r\n"); sb.append(KEY_URL_MAIN).append(" = ").append(urlMain).append("\r\n"); return sb.toString(); } @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flag) { Bundle bundle = new Bundle(); if (pid != 0) { bundle.putLong(KEY_PID, pid); } if (fileName != null) { bundle.putString(KEY_FILE_NAME, fileName); } if (aid != 0) { bundle.putLong(KEY_AID, aid); } if (uid != 0) { bundle.putLong(KEY_UID, uid); } if (caption != null) { bundle.putString(KEY_CAPTION, caption); } if (createTime != null) { bundle.putSerializable(KEY_CREATE_TIME, createTime); } bundle.putInt(KEY_VIEW_COUNT, viewCount); bundle.putInt(KEY_COMMENT_COUNT, commentCount); if (urlTiny != null) { bundle.putString(KEY_URL_TINY, urlTiny); } if (urlHead != null) { bundle.putString(KEY_URL_HEAD, urlHead); } if (urlLarge != null) { bundle.putString(KEY_URL_LARGE, urlLarge); } if (urlMain != null) { bundle.putString(KEY_URL_MAIN, urlMain); } // 一般不传递content,因为内容可能太大 if (content != null) { bundle.putByteArray(KEY_CONTENT, content); } dest.writeBundle(bundle); } public static final Parcelable.Creator<PhotoBean> CREATOR = new Parcelable.Creator<PhotoBean>() { public PhotoBean createFromParcel(Parcel in) { return new PhotoBean(in); } public PhotoBean[] newArray(int size) { return new PhotoBean[size]; } }; /** * 构造函数,根据序列化对象构造实例 * * @param in */ public PhotoBean(Parcel in) { Bundle bundle = in.readBundle(); if (bundle.containsKey(KEY_PID)) { pid = bundle.getLong(KEY_PID); } if (bundle.containsKey(KEY_FILE_NAME)) { fileName = bundle.getString(KEY_FILE_NAME); } if (bundle.containsKey(KEY_AID)) { aid = bundle.getLong(KEY_AID); } if (bundle.containsKey(KEY_UID)) { uid = bundle.getLong(KEY_UID); } if (bundle.containsKey(KEY_CAPTION)) { caption = bundle.getString(KEY_CAPTION); } if (bundle.containsKey(KEY_CREATE_TIME)) { createTime = (Date) bundle.getSerializable(KEY_CREATE_TIME); } viewCount = bundle.getInt(KEY_VIEW_COUNT); commentCount = bundle.getInt(KEY_COMMENT_COUNT); if (bundle.containsKey(KEY_URL_TINY)) { urlTiny = bundle.getString(KEY_URL_TINY); } if (bundle.containsKey(KEY_URL_HEAD)) { urlHead = bundle.getString(KEY_URL_HEAD); } if (bundle.containsKey(KEY_URL_LARGE)) { urlLarge = bundle.getString(KEY_URL_LARGE); } if (bundle.containsKey(KEY_URL_MAIN)) { urlMain = bundle.getString(KEY_URL_MAIN); } if (bundle.containsKey(KEY_CONTENT)) { content = bundle.getByteArray(KEY_CONTENT); } } }