package com.qianfeng.gl4study.snssdk.activity;
import android.app.ActionBar;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.Color;
import android.graphics.PixelFormat;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.util.DisplayMetrics;
import android.util.Log;
import android.view.*;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.widget.*;
import cn.sharesdk.framework.ShareSDK;
import cn.sharesdk.onekeyshare.OnekeyShare;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;
import com.qianfeng.gl4study.snssdk.R;
import com.qianfeng.gl4study.snssdk.adapter.SnssdkMainAdapter;
import com.qianfeng.gl4study.snssdk.animation.MyAnimation;
import com.qianfeng.gl4study.snssdk.constant.Constant;
import com.qianfeng.gl4study.snssdk.databases.SnssdkDatabasesManager;
import com.qianfeng.gl4study.snssdk.model.*;
import com.qianfeng.gl4study.snssdk.tasks.SnssdkTask;
import com.qianfeng.gl4study.snssdk.tasks.TaskProcessor;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.util.LinkedList;
/**
* 整个项目的主界面显示
*/
public class MainActivity extends Activity implements TaskProcessor, View.OnClickListener,PullToRefreshBase.OnRefreshListener2<ListView> {
private SnssdkMainAdapter adapter; //显示段子的Adapter
private PullToRefreshListView refreshListView;
private SnssdkTask snssdkTask;
private MenuItem itemWord;
private MenuItem itemImage;
private MenuItem itemVideo;
private String levelURL = "level=";
private String categoryIdURL = "&category_id=";
private String countURL = "&count=";
//标记需要获取的段子的参数
private int level = 6;
private int category = 1;
private int count = 20;
private long minTime = 0;
private long maxTime = 0;
private ListView listViewSnssdk;
private TextView category2;
private PopupWindow popupWindow;
private View viewPopupWindow;
private ImageView imgCategory2;
private ImageView rightbtn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化悬浮按钮
initFloatView();
//显示悬浮框
createRightFloatView();
showFloatView();
//设置隐藏ActionBar隐藏标题,图标,上界面的title栏
ActionBar actionBar = getActionBar();
if(actionBar!=null) {
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.hide();
}
//自定义标题栏的组件获取
// 用户头像
ImageView topUser = (ImageView) findViewById(R.id.ib_user_icon);
topUser.setOnClickListener(this);
//点击分类
category2 = (TextView) findViewById(R.id.txt_main_level);
imgCategory2 = (ImageView) findViewById(R.id.img_main_level);
category2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
initPopupMenu();
clearPopupeWindow();
imgCategory2.setImageResource(R.drawable.ic_title_down_arrow_titlebar_up);
}
});
//获取手机屏幕信息
getDeviceInfo();
doPullToRefreshList();
//投稿图标
ImageView topContribute = (ImageView) findViewById(R.id.ib_push_contribute);
topContribute.setOnClickListener(this);
//显示以前的信息
adapter = new SnssdkMainAdapter(this, SingletonWord.getSnssdks());
listViewSnssdk.setAdapter(adapter);
}
private void getDeviceInfo(){
//获取手机的宽高
DisplayMetrics metric = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metric);
Constant.DISPLAYMETRICS_WIDTH = metric.widthPixels; // 屏幕宽度(像素)
Constant.DISPLAYMETRICS_HEIGHT = metric.heightPixels; // 屏幕高度(像素)
}
/**
* 显示Activity时判断位置
*/
@Override
protected void onStart() {
super.onStart();
if(SingletonWord.getSnssdks().size()==0) {
SingletonWord.getInstance().addAllSnssdks(
SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
category,
level));
}
//TODO 待做
if(SingletonWord.getSnssdks().size()==0) {
onPullDownToRefreshIml();
adapter = new SnssdkMainAdapter(this, SingletonWord.getSnssdks());
listViewSnssdk.setAdapter(adapter);
}
getPositionForList();
}
/**
* 显示需要显示的位置
*/
private void getPositionForList(){
Log.d("onPullUpToRefresh","准备显示:"+Constant.MAIN_ACTIVITY_LIST_WORD_POSITION);
switch (category){
case Constant.TYPE_1_CATEGORY_ID_WORD_FLAG_SNSSDK:
listViewSnssdk.setSelection(Constant.MAIN_ACTIVITY_LIST_WORD_POSITION);
break;
case Constant.TYPE_1_CATEGORY_ID_IMAGE_FLAG_SNSSDK:
listViewSnssdk.setSelection(Constant.MAIN_ACTIVITY_LIST_IMAGE_POSITION);
break;
case Constant.TYPE_1_CATEGORY_ID_VIDEO_FLAG_SNSSDK:
listViewSnssdk.setSelection(Constant.MAIN_ACTIVITY_LIST_VIDEO_POSITION);
break;
}
}
/**
* 初始化分类2的PopupWindow
*/
private void initPopupMenu() {
LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
viewPopupWindow = lay.inflate(R.layout.item_popup_mian_activity, null);
popupWindow = new PopupWindow(viewPopupWindow, getApplicationContext().getResources().getDisplayMetrics().widthPixels / 3,
getApplicationContext().getResources().getDisplayMetrics().heightPixels / 4, true);
//设置整个popupwindow的样式。
popupWindow.setBackgroundDrawable(this.getResources().getDrawable(R.drawable.popup_menu_bg));
popupWindow.setFocusable(true);
popupWindow.setOutsideTouchable(true);
popupWindow.update();
//popupWindow.showAsDropDown(category2);
popupWindow.showAtLocation(category2, Gravity.TOP | Gravity.CENTER_HORIZONTAL, 0, 200);
((LinearLayout) viewPopupWindow.findViewById(R.id.popup_main_ll_favor_1)).setOnClickListener(this);
((LinearLayout) viewPopupWindow.findViewById(R.id.popup_main_ll_best_2)).setOnClickListener(this);
((LinearLayout) viewPopupWindow.findViewById(R.id.popup_main_ll_hot_3)).setOnClickListener(this);
((LinearLayout) viewPopupWindow.findViewById(R.id.popup_main_ll_new_4)).setOnClickListener(this);
}
/**
* 上下拉刷新的实现
*/
private void doPullToRefreshList() {
refreshListView = (PullToRefreshListView) findViewById(R.id.recycle_view);//主界面显示段子列表
listViewSnssdk = refreshListView.getRefreshableView();
refreshListView.setMode(PullToRefreshBase.Mode.BOTH);
refreshListView.setPullLabel("继续下拉");
refreshListView.setBackgroundResource(R.drawable.main_rg_bg);
refreshListView.setRefreshingLabel("正在刷新....");
refreshListView.setReleaseLabel("正在刷新....");
refreshListView.setOnRefreshListener(this);
}
/**
* 下拉刷新
* @param refreshView 需要刷新的对象
*/
@Override
public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
onPullDownToRefreshIml();
}
/**
* 下拉刷新的实现
*/
private void onPullDownToRefreshIml(){
//从文件中读取数据
SharedPreferences sharedPreferences = getSharedPreferences("config", MODE_PRIVATE);
if (category == 1) {
minTime = sharedPreferences.getLong("minTimeWord", 0);
} else if (category == 2) {
minTime = sharedPreferences.getLong("minTimeImage", 0);
}else if (category == 18) {
minTime = sharedPreferences.getLong("minTimeVideo", 0);
}
StringBuilder stringBuilder = new StringBuilder();
snssdkTask = new SnssdkTask(this);
String minTimeURL = "&min_time=";
stringBuilder.append(Constant.SNSSDK_CONTENT_LIST_URL)
.append(levelURL).append(level)//推荐分类
.append(categoryIdURL).append(category)//文本段子
.append(countURL).append(count) //返回20个数据
.append(minTimeURL).append(minTime);
Log.d("parseInformation", "使用minTime1===" + minTime);
snssdkTask.execute(stringBuilder.toString(), category + "");
Log.d("onPullDownToRefresh",stringBuilder.toString());
refreshListView.setRefreshing(true);
}
/**
* 上拉加载
* @param refreshView 需要刷新的对象
*/
@Override
public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
switch (category){
case Constant.TYPE_1_CATEGORY_ID_WORD_FLAG_SNSSDK:
Constant.MAIN_ACTIVITY_LIST_WORD_POSITION = listViewSnssdk.getLastVisiblePosition();
break;
case Constant.TYPE_1_CATEGORY_ID_IMAGE_FLAG_SNSSDK:
Constant.MAIN_ACTIVITY_LIST_IMAGE_POSITION = listViewSnssdk.getLastVisiblePosition();
break;
case Constant.TYPE_1_CATEGORY_ID_VIDEO_FLAG_SNSSDK:
Constant.MAIN_ACTIVITY_LIST_VIDEO_POSITION = listViewSnssdk.getLastVisiblePosition();
break;
}
onPullUpToRefreshIml();
getPositionForList();
}
/**
* 上拉加载实现
*/
private void onPullUpToRefreshIml(){
//从文件中读取数据
SharedPreferences sharedPreferences = getSharedPreferences("config", MODE_PRIVATE);
if (category == 1) {
maxTime = sharedPreferences.getLong("maxTimeWord", 0);
} else if (category == 2) {
maxTime = sharedPreferences.getLong("maxTimeImage", 0);
}else if (category == 3) {
maxTime = sharedPreferences.getLong("maxTimeVideo", 0);
}
Log.d("Time1", "使用maxTime1===" + maxTime);
snssdkTask = new SnssdkTask(this);
String maxTimeURL = "&max_time=";
snssdkTask.execute(Constant.SNSSDK_CONTENT_LIST_URL + levelURL + level + categoryIdURL + category + countURL + count + maxTimeURL + maxTime, category + "");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
itemWord = menu.getItem(0);
itemImage = menu.getItem(1);
itemVideo = menu.getItem(2);
return true;
}
/**
* 菜单的监听事件
* @param item 菜单对象
* @return 结果
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int itemId = item.getItemId();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(Constant.SNSSDK_CONTENT_LIST_URL)
.append(levelURL).append(level) //推荐分类
.append(countURL).append(count); //返回20个数据
switch (itemId) {
case R.id.menu_word:
onClickImageButton();
item.setIcon(R.drawable.document_main_full);
category = Constant.TYPE_1_CATEGORY_ID_WORD_FLAG_SNSSDK;
SingletonWord.getInstance().removeAll();
SingletonWord.getInstance().addAllSnssdks(SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
Constant.TYPE_1_CATEGORY_ID_WORD_FLAG_SNSSDK,level));
adapter = new SnssdkMainAdapter(this, SingletonWord.getSnssdks());
listViewSnssdk.setAdapter(adapter);
break;
case R.id.menu_image:
onClickImageButton();
item.setIcon(R.drawable.camera_main_full);
category = Constant.TYPE_1_CATEGORY_ID_IMAGE_FLAG_SNSSDK;
SingletonImage.getInstance().removeAll();
SingletonImage.getInstance().addAllSnssdks(SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
Constant.TYPE_1_CATEGORY_ID_IMAGE_FLAG_SNSSDK,level));
adapter = new SnssdkMainAdapter(this, SingletonImage.getSnssdks());
listViewSnssdk.setAdapter(adapter);
break;
case R.id.menu_video:
onClickImageButton();
item.setIcon(R.drawable.video_main_full);
category = Constant.TYPE_1_CATEGORY_ID_VIDEO_FLAG_SNSSDK;
SingletonVideo.getInstance().removeAll();
SingletonVideo.getInstance().addAllSnssdks(SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
Constant.TYPE_1_CATEGORY_ID_VIDEO_FLAG_SNSSDK,level));
adapter = new SnssdkMainAdapter(this, SingletonVideo.getSnssdks());
listViewSnssdk.setAdapter(adapter);
break;
}
if (itemId == R.id.menu_find) {
Toast.makeText(this, "find", Toast.LENGTH_LONG).show();
} else if (itemId == R.id.menu_examine) {
Toast.makeText(this, "examine", Toast.LENGTH_LONG).show();
}
/* else {
snssdkTask = new SnssdkTask(this);
stringBuilder.append(categoryIdURL).append(category);//文本段子
snssdkTask.execute(stringBuilder.toString(), category + "");
}*/
return super.onOptionsItemSelected(item);
}
/**
* 异步任务接口回调,所有数据的下载均使用该异步任务<br/>
* 通过该回调函数的第二个参数判断开启回调的类别
*
* @param result 返回的下载数据
* @param flag 开启的异步类别
*/
@Override
public void processResult(JSONObject result, String flag) {
if (result != null) { //段子列表
try {
String resultFlag = result.getString("message");
if ("success".equals(resultFlag)) {
JSONObject data = result.getJSONObject("data");
JSONArray dataJSONArray = data.getJSONArray("data");
int type = Integer.parseInt(flag);
for (int i = 0; i < dataJSONArray.length(); i++) {
JSONObject jsonObject = dataJSONArray.getJSONObject(i);
Snssdk snssdk = new Snssdk();
snssdk.parseInformation(jsonObject, type);
ContentValues values = snssdk.getContentValues();
SnssdkDatabasesManager.createInstance(this).saveSnssdk(values,snssdk.getGroup_id());
}
saveTimeToSingleton(this,type,data.getLong("min_time"),data.getLong("max_time"));
//数据添加完成,更新List
listViewSnssdk.setAdapter(adapter);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
//当运行到此处时取消刷新状态
refreshListView.onRefreshComplete();
}
/**
* 网络获取的数据保存到单例和配置文件中
*
* @param type 段子更新的类型
* @param minTime1 返回的时间
* @param maxTime1 返回的时间
*/
private void saveTimeToSingleton(Context context,int type,long minTime1, long maxTime1) {
SharedPreferences sharedPreferences = getSharedPreferences("config", MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
if (type == 1) {
SingletonWord.getInstance().removeAll();
LinkedList<Snssdk> snssdks =
SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
Constant.TYPE_1_CATEGORY_ID_WORD_FLAG_SNSSDK,level);
SingletonWord.getInstance().addAllSnssdks(snssdks);
Log.d("parseInformation", "使用minTime1===" + minTime);
adapter = new SnssdkMainAdapter(context, SingletonWord.getSnssdks());
edit.putLong("minTimeWord", minTime1);
edit.putLong("maxTimeWord", maxTime1);
} else if (type == 2) {
SingletonImage.getInstance().removeAll();
LinkedList<Snssdk> snssdks =
SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
Constant.TYPE_1_CATEGORY_ID_IMAGE_FLAG_SNSSDK,level);
SingletonImage.getInstance().addAllSnssdks(snssdks);
adapter = new SnssdkMainAdapter(context, SingletonImage.getSnssdks());
edit.putLong("minTimeImage", minTime1);
edit.putLong("maxTimeImage", maxTime1);
} else if (type == 18) {
SingletonVideo.getInstance().removeAll();
LinkedList<Snssdk> snssdks =
SnssdkDatabasesManager.createInstance(this).getSnssdkCollect(
Constant.TYPE_1_CATEGORY_ID_VIDEO_FLAG_SNSSDK,level);
SingletonVideo.getInstance().addAllSnssdks(snssdks);
adapter = new SnssdkMainAdapter(context, SingletonVideo.getSnssdks());
edit.putLong("minTimeVideo", minTime1);
edit.putLong("maxTimeVideo", maxTime1);
}
edit.apply();
}
/**
* 点击listViewSnssdk调用
* @param v 被点击的控件
*/
@Override
public void onClick(View v) {
int id = v.getId();
if (id == R.id.ib_user_icon) { //用户自己的头像
//TODO 判断用户是否登陆
if(Constant.SNSSDK_USER_ID == 0){
Toast.makeText(this,"用户未登录,请登录!",Toast.LENGTH_LONG).show();
Intent intent = new Intent(this, LoginActivity.class);
startActivity(intent);
}else {
Intent intent = new Intent(this, PersonActivity.class);
intent.putExtra("userId",Constant.SNSSDK_USER_ID);
startActivity(intent);
}
} else if (id == R.id.ib_push_contribute) { //发布段子
Intent intent = new Intent(this, ContributeActivity.class);
startActivity(intent);
}else if(id == R.id.popup_main_ll_favor_1|| //点击PopupWindow监听
id == R.id.popup_main_ll_best_2||
id == R.id.popup_main_ll_hot_3||
id == R.id.popup_main_ll_new_4
) {
onClickPopupWindow(v);
popupWindow.dismiss();
//refreshListView.setRefreshing(true);
refreshListView.setRefreshing();
imgCategory2.setImageResource(R.drawable.ic_main_down_arrow_titlebar);
onPullDownToRefreshIml();
}else { //点击评论条
Object tag = v.getTag();
if (tag != null) {
Log.d("MainActivity", "onClick=============");
clickDiscussBar(id, (Integer) tag, v);
}
}
}
private void onClickPopupWindow(View v){
switch (v.getId()){
case R.id.popup_main_ll_favor_1:
level = Constant.TYPE_2_CATEGORY_ID_RECOEND_FLAG_SNSSDK;
category2.setText("推荐");
break;
case R.id.popup_main_ll_best_2:
level = Constant.TYPE_2_CATEGORY_ID_ESSENCE_FLAG_SNSSDK;
category2.setText("精华");
break;
case R.id.popup_main_ll_hot_3:
level = Constant.TYPE_2_CATEGORY_ID_HOT_FLAG_SNSSDK;
category2.setText("热门");
break;
case R.id.popup_main_ll_new_4:
level = Constant.TYPE_2_CATEGORY_ID_FRESH_FLAG_SNSSDK;
category2.setText("新鲜");
break;
}
}
/**
* 第三方分享功能测试
*
* @param context
*/
private void showShare(Context context,String content) {
// 这个方法必须调用,初始化ShareSDK
ShareSDK.initSDK(context);
// 一键分享的代码
OnekeyShare oks = new OnekeyShare();
// 分享时Notification的图标和文字
oks.setNotification(R.drawable.ic_launcher, getString(R.string.app_name));
// 分享的文字内容
oks.setText(content);
// 设置分享的图片
//oks.setImageUrl("http://f1.sharesdk.cn/imgs/2014/05/21/oESpJ78_533x800.jpg");
// 启动分享GUI
oks.show(context);
Log.d("showShare","showShare");
}
/**
* 点击PopupWindow会首先清除之前的显示状态
*/
private void clearPopupeWindow(){
ImageView popupImage1 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_1);
TextView popupText1 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_1);
popupImage1.setImageResource(R.drawable.ic_title_favor_normal);
popupText1.setTextColor(Color.WHITE);
ImageView popupImage2 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_2);
TextView popupText2 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_2);
popupImage2.setImageResource(R.drawable.ic_title_best_normal);
popupText2.setTextColor(Color.WHITE);
ImageView popupImage3 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_3);
TextView popupText3 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_3);
popupImage3.setImageResource(R.drawable.ic_title_hot_normal);
popupText3.setTextColor(Color.WHITE);
ImageView popupImage4 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_4);
popupImage4.setImageResource(R.drawable.ic_title_new_normal);
TextView popupText4 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_4);
popupText4.setTextColor(Color.WHITE);
switch (level) {
case Constant.TYPE_2_CATEGORY_ID_RECOEND_FLAG_SNSSDK:
popupImage1 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_1);
popupText1 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_1);
popupImage1.setImageResource(R.drawable.ic_title_favor_pressed);
popupText1.setTextColor(Color.RED);
break;
case Constant.TYPE_2_CATEGORY_ID_ESSENCE_FLAG_SNSSDK:
popupImage2 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_2);
popupText2 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_2);
popupImage2.setImageResource(R.drawable.ic_title_best_pressed);
popupText2.setTextColor(Color.RED);
break;
case Constant.TYPE_2_CATEGORY_ID_HOT_FLAG_SNSSDK:
popupImage3 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_3);
popupText3 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_3);
popupImage3.setImageResource(R.drawable.ic_title_hot_pressed);
popupText3.setTextColor(Color.RED);
break;
case Constant.TYPE_2_CATEGORY_ID_FRESH_FLAG_SNSSDK:
popupImage4 = (ImageView) viewPopupWindow.findViewById(R.id.ig_item_popup_main_4);
popupImage4.setImageResource(R.drawable.ic_title_new_pressed);
popupText4 = (TextView) viewPopupWindow.findViewById(R.id.txt_item_popup_main_4);
popupText4.setTextColor(Color.RED);
break;
}
}
/**
* 点击段子内容或评论条
* @param id 点击的对象的Id
* @param position 点击的位置
*/
private void clickDiscussBar(int id, int position, View v) {
Snssdk snssdk = null;
if (category == 1) {
snssdk = SingletonWord.getSnssdks().get(position);
} else if (category == 2) {
snssdk = SingletonImage.getSnssdks().get(position);
} else if (category == 18) {
snssdk = SingletonVideo.getSnssdks().get(position);
}
switch (id) {
case R.id.item_fragment_bar_user_ll://跳转到个人中心
Intent intent = new Intent(this, AuthorActivity.class);
intent.putExtra("userId",snssdk.getUser_id());
startActivity(intent);
break;
case R.id.item_fragment_common://点击段子内容跳转到详情页面
//TODO 点击视频进行播放
if(category == 18){
VideoView videoView = (VideoView) v.findViewById(R.id.item_fragment_video);
ImageView imageView = (ImageView) v.findViewById(R.id.item_fragment_image);
if(videoView.isPlaying()){
videoView.setVisibility(View.GONE);
imageView.setVisibility(View.VISIBLE);
videoView.pause();
}else {
imageView.setVisibility(View.GONE);
videoView.setVisibility(View.VISIBLE);
videoView.start();
}
}else {
skipToInfo(position);
}
break;
case R.id.item_fragment_bar_good_ll://点击赞
if ((snssdk != null ? snssdk.getUser_repin() : 0) == 1) {
makeToastForBar("你已经踩了,做人不要矛盾哦");
} else if ((snssdk != null ? snssdk.getUser_digg() : 0) == 0) {
if (snssdk != null) {
snssdk.setDigg_count(snssdk.getDigg_count() + 1);
snssdk.setUser_digg(1);
}
TextView txtGood = (TextView) v.findViewById(R.id.item_fragment_bar_good_txt);
MyAnimation.addOneAnimation(this, txtGood);
}
adapter.notifyDataSetChanged();
Log.d("MainActivity", "item_fragment_bar_good");
break;
case R.id.item_fragment_bar_bad_ll://点击踩
if ((snssdk != null ? snssdk.getUser_digg() : 0) == 1) {
makeToastForBar("你已经顶了,做人不要矛盾哦");
} else if ((snssdk != null ? snssdk.getUser_repin() : 0) == 0) {
if (snssdk != null) {
snssdk.setRepin_count(snssdk.getRepin_count() + 1);
snssdk.setUser_repin(1);
}
TextView txtBad = (TextView) v.findViewById(R.id.item_fragment_bar_bad_txt);
MyAnimation.addOneAnimation(this, txtBad);
}
adapter.notifyDataSetChanged();
Log.d("MainActivity", "item_fragment_bar_bad");
break;
case R.id.item_fragment_bar_hot_ll://点击评论,跳转到详情页面
skipToInfo(position);
break;
case R.id.item_fragment_bar_forward_ll://点击分享
showShare(this,snssdk.getContent());
break;
}
}
/**
* 重复点击赞或踩时弹出提醒
*
* @param string 弹出的提醒
*/
private void makeToastForBar(String string) {
Toast toast = Toast.makeText(this, string, Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
}
/**
* 跳转到段子详情
*
* @param position 点击的段子详情位置
*/
private void skipToInfo(int position) {
Intent intent = new Intent(this, SnssdkInfoActivity.class);
if (position >= 0) {
intent.putExtra("position", position);
intent.putExtra("category", category);
}
startActivity(intent);
Log.d("MainActivity", "item_fragment_word");
}
/**
* 当点击ActionBar时清空显示数据并变换图片
*/
private void onClickImageButton() {
//清空显示列表,将原数据置空
listViewSnssdk.setAdapter(null);
//snssdks.clear();
//首先将所有图标设置成暗色,然后点击哪一个哪一个变色即可
itemWord.setIcon(R.drawable.document_main_one);
itemImage.setIcon(R.drawable.camera_main_one);
itemVideo.setIcon(R.drawable.video_main_one);
}
//悬浮按钮实现
private WindowManager wm=null;
private WindowManager.LayoutParams wmParams=null;
private void initFloatView(){
//获取WindowManager
wm=(WindowManager)getApplicationContext().getSystemService(Context.WINDOW_SERVICE);
//设置LayoutParams(全局变量)相关参数
wmParams = new WindowManager.LayoutParams();
wmParams.type= WindowManager.LayoutParams.TYPE_PHONE; //设置window type
wmParams.format= PixelFormat.RGBA_8888; //设置图片格式,效果为背景透明
//设置Window flag
wmParams.flags= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;
wmParams.width=100;
wmParams.height=100;
}
/**
* 创建右边悬浮按钮
*/
private void createRightFloatView(){
rightbtn =new ImageView(this);
rightbtn.setImageResource(R.drawable.wap_refresh_normal);
rightbtn.setAlpha(0);
rightbtn.setScaleType(ImageView.ScaleType.CENTER_CROP);
final Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.anim_rotate);
rightbtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
Log.d("MainActivity","点击悬浮");
showFloatView();
animation.startNow();
onPullDownToRefreshIml();
}
});
//调整悬浮窗口
wmParams.gravity=Gravity.RIGHT|Gravity.BOTTOM;
wmParams.windowAnimations = R.anim.anim_move_up;
wm.addView(rightbtn, wmParams);
rightbtn.setAnimation(animation);
}
// ImageView的alpha值
private int mAlpha = 0;
private boolean isHide;
/**
* 图片渐变显示处理
*/
private Handler mHandler = new Handler()
{
public void handleMessage(Message msg) {
if(msg.what==1 && mAlpha<255){
mAlpha += 50;
if(mAlpha>255)
mAlpha=255;
rightbtn.setAlpha(mAlpha);
rightbtn.invalidate();
if(!isHide && mAlpha<255)
mHandler.sendEmptyMessageDelayed(1, 100);
}else if(msg.what==0 && mAlpha>0){
mAlpha -= 10;
if(mAlpha<0)
mAlpha=0;
rightbtn.setAlpha(mAlpha);
rightbtn.invalidate();
//rightbtn.setClickable(false);
if(isHide && mAlpha>0)
mHandler.sendEmptyMessageDelayed(0, 100);
}
}
};
private void showFloatView(){
isHide = false;
mHandler.sendEmptyMessage(1);
}
private void hideFloatView(){
new Thread(){
public void run() {
try {
Thread.sleep(1500);
isHide = true;
mHandler.sendEmptyMessage(0);
} catch (Exception e) {
}
}
}.start();
}
@Override
protected void onStop() {
super.onStop();
hideFloatView();
}
@Override
public void onDestroy(){
super.onDestroy();
//在程序退出(Activity销毁)时销毁悬浮窗口
wm.removeView(rightbtn);
}
}