package cn.bidaround.ytcore.data; import java.io.Serializable; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import cn.bidaround.ytcore.YtCore; import cn.bidaround.ytcore.util.HttpUtils; import cn.bidaround.ytcore.util.Util; /** * 该类为分享数据类,有些平台有分享限制 友推sdk会过滤掉无法分享的内容,只分享能被平台接受的内容 * 如果需要分享图片,需要设置imageUrl和imagePath中的一项 如果imageUrl和imagePath都被设置,则优先使用imagePath * * @author youtui * @since 14/6/19 */ public class ShareData implements Serializable, Cloneable { private static final long serialVersionUID = 1L; /** * 如果为app分享设置为true,如果为content分享则设置为false app分享的内容由开发者预先保留在友推服务器上 * content分享的内容由开发者给ShareData实例的各个字段赋值 **/ private boolean isAppShare = false; /** 分享的文字 */ private String text = ""; /** 分享的图片的本地路径 */ private String imagePath; /** 分享的描述 */ private String description; /** 分享的标题 */ private String title; /** 分享的图片的网络url */ private String imageUrl; /** 分享的网页链接 */ private String targetUrl; private String musicUrl; private String videoUrl; private String image; /** 子页面统计在用户系统中的id,区分统计*/ private String targetId; /** 发表时间*/ private String publishTime; /** 是否有活动正在进行 */ private boolean isInProgress = false; /** 图文分享,该分享类型为默认分享类型,如果开发者未设置,则使用默认分享类型 */ public static final int SHARETYPE_IMAGEANDTEXT = 0; /** 纯图分享,qq空间不支持纯图分享 */ public static final int SHARETYPE_IMAGE = 1; /** 纯文字分享,qq和qq空间不支持纯文字分享 */ public static final int SHARETYPE_TEXT = 2; /** 分享音乐 */ public static final int SHARETYPE_MUSIC = 3; /** 分享音乐 */ public static final int SHARETYPE_VIDEO = 4; /** 用来判断分享的类型 */ private int shareType = -1; private int imageType = 0; /** 分享图片类型为网络图片 */ public static final int IMAGETYPE_INTERNET = 1; /** 分享图片类型为本地sd卡图片 */ public static final int IMAGETYPE_SDCARD = 2; /** 分享图片类型为应用资源图片 */ public static final int IMAGETYPE_APPRESOURE = 3; /** 设置分享图片为资源图片 */ private int resourceImage; public void setIsInProgress(boolean isInProgress) { this.isInProgress = isInProgress; } /** 查看是否有活动正在进行中 */ public boolean getIsInProgress() { return isInProgress; } public void setIsAppShare(boolean isAppShare) { this.setAppShare(isAppShare); } public String getTargetUrl() { return targetUrl; } /** * 网页链接地址 */ public void setTargetUrl(String target_url) { this.targetUrl = target_url; } public String getDescription() { return description; } /** * 设置分享内容的描述 */ public void setDescription(String description) { this.description = description; } public String getText() { return text; } /** * 设置待分享的文字内容 */ public void setText(String text) { this.text = text; } public String getImagePath() { return imagePath; } /** * 待分享的本地图片路径 */ public void setImagePath(String imagePath) { this.imagePath = imagePath; } public String getTitle() { return title; } /** * 待分享的内容标题 */ public void setTitle(String title) { this.title = title; } public String getImageUrl() { return imageUrl; } /** * 设置分享的网络图片url */ public void setImageUrl(String imageUrl) { this.imageUrl = imageUrl; HttpUtils.saveImage(this); } /** 获取分享的类型 */ public int getShareType() { return shareType; } /** 设置分享的类型 */ public void setShareType(int shareType) { this.shareType = shareType; } /** * @param imageType * 图片的类型 IMAGETYPE_NET = 1 网络图片 IMAGETYPE_SDCARD= 2 本地sd卡图片 * IMAGETYPE_APPRESOURE=3 应用资源图片,选择该参数时第二个参数设为图片资源id(转为字符串) */ public void setImage(int imageType, final String image) { this.imageType = imageType; this.image = image; if (imageType == IMAGETYPE_INTERNET) { setImageUrl(image); } else if (imageType == IMAGETYPE_SDCARD) { setImagePath(image); } else if (imageType == IMAGETYPE_APPRESOURE) { final Bitmap bit = BitmapFactory.decodeResource(YtCore.res, Integer.valueOf(image)); new Thread() { public void run() { Util.savePicToSd(bit, image, ShareData.this, "res"); }; }.start(); } } public int getImageType() { return imageType; } public String getImage() { return image; } public String getMusicUrl() { return musicUrl; } public void setMusicUrl(String musicUrl) { this.musicUrl = musicUrl; } public String getVideoUrl() { return videoUrl; } public void setVideoUrl(String videoUrl) { this.videoUrl = videoUrl; } public boolean isAppShare() { return isAppShare; } public void setAppShare(boolean isAppShare) { this.isAppShare = isAppShare; if (isAppShare) HttpUtils.getAppShareData(this); } @Override public ShareData clone() throws CloneNotSupportedException { return (ShareData) super.clone(); } public int getResourceImage() { return resourceImage; } public void setResourceImage(int resourceImage) { this.resourceImage = resourceImage; Bitmap bit = BitmapFactory.decodeResource(YtCore.res, resourceImage); Util.savePicToSd(bit, resourceImage + "", this, "res"); } public String getPublishTime() { return publishTime; } public void setPublishTime(String publishTime) { this.publishTime = publishTime; } public String getTargetId() { return targetId; } public void setTargetId(String targetId) { this.targetId = targetId; } }