package com.xinxin.everyxday.fragment; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Intent; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.v4.widget.SwipeRefreshLayout; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.view.ViewGroup.LayoutParams; import android.view.animation.AccelerateInterpolator; import android.view.animation.OvershootInterpolator; import android.widget.ImageView; import android.widget.ListView; import android.widget.RelativeLayout; import android.widget.TextView; import com.andexert.library.RippleView; import com.loopj.android.http.RequestParams; import com.xinxin.everyxday.R; import com.xinxin.everyxday.activity.ToolbarControlDetailListViewActivity; import com.xinxin.everyxday.base.imgloader.ImgLoadUtil; import com.xinxin.everyxday.bean.ShowOrderFeaturedBean; import com.xinxin.everyxday.dao.model.Like; import com.xinxin.everyxday.dao.util.DbService; import com.xinxin.everyxday.global.InterfaceUrlDefine; import com.xinxin.everyxday.util.TimeUtil; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class FragmentShowOrderFeaturedContent extends RefreshingListBaseFragment<ShowOrderFeaturedBean> { private ArrayList<ShowOrderFeaturedBean> voList = new ArrayList<ShowOrderFeaturedBean>(); private final Map<ImageView, AnimatorSet> likeAnimations = new HashMap<>(); private static final AccelerateInterpolator ACCELERATE_INTERPOLATOR = new AccelerateInterpolator(); private static final OvershootInterpolator OVERSHOOT_INTERPOLATOR = new OvershootInterpolator(4); private DbService mDbService; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return super.onCreateView(inflater, container, savedInstanceState); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); mDbService = DbService.getInstance(getAttachActivity()); loadListData(); } @Override public View getFragmentView() { containerView = (RelativeLayout) inflater.inflate(R.layout.fragment_common_list, null); return containerView; } @Override public void addListViewToContainer(View listView) { if(isActivityAttached()){ SwipeRefreshLayout refreshListView = (SwipeRefreshLayout)listView; ListView contentView = (ListView)refreshListView.findViewById(R.id.list_view); contentView.setDivider(null); contentView.setDividerHeight(0); } containerView.removeAllViews(); containerView.addView(listView, new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); } @Override public View getCovertView(int position) { View convertView = inflater.inflate(R.layout.showorder_list_view_item_new, null); return convertView; } @Override public void initCovertView(View convertView, final int position) { final ShowOrderFeaturedBean vo = voList.get(position); // ImageView userPhoto = (ImageView)convertView.findViewById(R.id.showorder_list_user_avater); // ImgLoadUtil.displayImageWithAnimation(vo.getAvatar(), userPhoto); TextView userName = (TextView)convertView.findViewById(R.id.showorder_list_user_name); userName.setText(vo.getTitle().replace("今日最佳:", "")); final ImageView like = (ImageView)convertView.findViewById(R.id.btnLike); like.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if(mDbService.queryLike("WHERE NEWID = "+ vo.getId()).size() == 0){ Like likeBean = new Like(); likeBean.setAvatar(vo.getAvatar()); likeBean.setCover(vo.getCover()); likeBean.setCreateTime(vo.getCreateTime()); likeBean.setDetailNew(vo.getDetailNew()); likeBean.setNewid(vo.getId() + ""); likeBean.setTitle(vo.getTitle()); likeBean.setCategory(vo.getCategory()); mDbService.saveLike(likeBean); updateHeartButton(like, true, position); System.out.println("daxiao === " + likeAnimations.size()); } } }); System.out.println("LikeList === " + mDbService.queryLike("WHERE NEWID = " + vo.getId()).size()); if(mDbService.queryLike("WHERE NEWID = "+ vo.getId()).size() != 0){ like.setBackgroundResource(R.mipmap.ic_heart_red); }else{ like.setBackgroundResource(R.mipmap.ic_heart_outline_grey); } TextView publishTime = (TextView)convertView.findViewById(R.id.new_time); publishTime.setText(TimeUtil.getMonthAndDay(vo.getCreateTime())); TextView category = (TextView)convertView.findViewById(R.id.new_sort); category.setText("#"+vo.getCategory()); ImageView orderImg = (ImageView)convertView.findViewById(R.id.showorder_list_img); ImgLoadUtil.displayImageWithAnimationAndNoCorner(vo.getCover(), orderImg); RippleView mRippleView = (RippleView)convertView.findViewById(R.id.item_rippleview); mRippleView.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() { @Override public void onComplete(RippleView rippleView) { Intent intent = new Intent(); intent.setClass(getActivity(), ToolbarControlDetailListViewActivity.class); intent.putExtra("today_new_title", vo.getTitle().replace("今日最佳:", "")); intent.putExtra("today_new_url", vo.getDetail()); intent.putExtra("today_new_id", vo.getId()); intent.putExtra("today_new_cover",vo.getCover()); intent.putExtra("today_new_time",vo.getCreateTime()); intent.putExtra("today_new_avatar",vo.getAvatar()); intent.putExtra("today_new_buyurl", vo.getBuyurl()); intent.putExtra("today_detail_new_url", vo.getDetailNew()); intent.putExtra("today_new_category", vo.getCategory()); System.out.println("================= " + vo.getDetailNew()); startActivity(intent); } }); // ImageView aboveImg = (ImageView)convertView.findViewById(R.id.showorder_list_img_above); // convertView.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View v) { // // System.out.println("这里这里这里这里这里这里这里这里这里这里这里这里这里"); // // } // }); } private void updateHeartButton(final ImageView view, boolean animated, int position) { if (animated) { if (!likeAnimations.containsKey(view)) { AnimatorSet animatorSet = new AnimatorSet(); likeAnimations.put(view, animatorSet); ObjectAnimator rotationAnim = ObjectAnimator.ofFloat(view, "rotation", 0f, 360f); rotationAnim.setDuration(300); rotationAnim.setInterpolator(ACCELERATE_INTERPOLATOR); ObjectAnimator bounceAnimX = ObjectAnimator.ofFloat(view, "scaleX", 0.2f, 1f); bounceAnimX.setDuration(300); bounceAnimX.setInterpolator(OVERSHOOT_INTERPOLATOR); ObjectAnimator bounceAnimY = ObjectAnimator.ofFloat(view, "scaleY", 0.2f, 1f); bounceAnimY.setDuration(300); bounceAnimY.setInterpolator(OVERSHOOT_INTERPOLATOR); bounceAnimY.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { view.setBackgroundResource(R.mipmap.ic_heart_red); } }); animatorSet.play(rotationAnim); animatorSet.play(bounceAnimX).with(bounceAnimY).after(rotationAnim); animatorSet.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { likeAnimations.remove(view); } }); animatorSet.start(); System.out.println("pos =========== " + position); } } // else { // if (likedPositions.contains(position)) { // view.setBackgroundResource(R.mipmap.ic_heart_red); //// view.setImageResource(R.mipmap.ic_heart_red); // } else { // view.setBackgroundResource(R.mipmap.ic_heart_outline_grey); // } // } } @Override public String getRequestType() { return InterfaceUrlDefine.SHAIDAN_EXCELLENT_URL; }; @Override public RequestParams getRequestParams() { RequestParams params = new RequestParams(); params.put("offset", 0); return params; } @Override public List<ShowOrderFeaturedBean> getViewListData() { return voList; } @Override public Class<ShowOrderFeaturedBean> getBeanType() { return ShowOrderFeaturedBean.class; } @Override public void onResume() { super.onResume(); // notifyMyListView(); } }