@Override
  public boolean onDependentViewChanged(
      CoordinatorLayout parent, CircleImageView child, View dependency) {

    // Called once
    if (mStartYPosition == 0) mStartYPosition = (int) (child.getY() + (child.getHeight() / 2));

    if (mFinalYPosition == 0) mFinalYPosition = (dependency.getHeight() / 2);

    if (mStartHeight == 0) mStartHeight = child.getHeight();

    if (finalHeight == 0)
      finalHeight = mContext.getResources().getDimensionPixelOffset(R.dimen.image_final_width);

    if (mStartXPosition == 0) mStartXPosition = (int) (child.getX() + (child.getWidth() / 2));

    if (mFinalXPosition == 0)
      mFinalXPosition =
          mContext
                  .getResources()
                  .getDimensionPixelOffset(R.dimen.abc_action_bar_content_inset_material)
              + (finalHeight / 2);

    if (mStartToolbarPosition == 0)
      mStartToolbarPosition = dependency.getY() + (dependency.getHeight() / 2);

    final int maxScrollDistance = (int) (mStartToolbarPosition - getStatusBarHeight());
    float expandedPercentageFactor = dependency.getY() / maxScrollDistance;

    float distanceYToSubtract =
        ((mStartYPosition - mFinalYPosition) * (1f - expandedPercentageFactor))
            + (child.getHeight() / 2);

    float distanceXToSubtract =
        ((mStartXPosition - mFinalXPosition) * (1f - expandedPercentageFactor))
            + (child.getWidth() / 2);

    float heightToSubtract = ((mStartHeight - finalHeight) * (1f - expandedPercentageFactor));

    child.setY(mStartYPosition - distanceYToSubtract);
    child.setX(mStartXPosition - distanceXToSubtract);

    int proportionalAvatarSize = (int) (mAvatarMaxSize * (expandedPercentageFactor));

    CoordinatorLayout.LayoutParams lp = (CoordinatorLayout.LayoutParams) child.getLayoutParams();
    lp.width = (int) (mStartHeight - heightToSubtract);
    lp.height = (int) (mStartHeight - heightToSubtract);
    child.setLayoutParams(lp);
    return true;
  }
Пример #2
0
  @SuppressLint("NewApi")
  public View getView(final JSONObject matchs) throws JSONException {
    View view = null;
    int viewType = getItemViewType(matchs);
    j_recordId = matchs.getString("record_id");

    if (TYPE_ONE == viewType) {
      view = inflater.inflate(R.layout.abc_match_board_item, null);
      TextView name = (TextView) view.findViewById(R.id.match_board_name);
      CircleImageView icon = (CircleImageView) view.findViewById(R.id.head_icon);
      TextView time = (TextView) view.findViewById(R.id.time);
      final TextView commentCount = (TextView) view.findViewById(R.id.zan_counts);
      TextView likeCount = (TextView) view.findViewById(R.id.enjoy_num);
      TextView tx_content = (TextView) view.findViewById(R.id.content);
      TextView recommend_msg = (TextView) view.findViewById(R.id.recommend_msg);
      LinearLayout ll_recomment = (LinearLayout) view.findViewById(R.id.ll_recomment);
      lay_zan = (LinearLayout) view.findViewById(R.id.lay_zan);
      ll_zan = (LinearLayout) view.findViewById(R.id.ll_zan);
      zan_count = (ImageView) view.findViewById(R.id.zan_count);
      View tx_yuan = (View) view.findViewById(R.id.yuan);
      LinearLayout ll_content = (LinearLayout) view.findViewById(R.id.ll_content);
      zan = (ImageView) view.findViewById(R.id.zan);
      LinearLayout ll_photo = (LinearLayout) view.findViewById(R.id.ll_photo);
      LinearLayout ll_grid1 = (LinearLayout) view.findViewById(R.id.ll_photo_grid1);
      LinearLayout ll_grid2 = (LinearLayout) view.findViewById(R.id.ll_photo_grid2);
      LinearLayout ll_grid3 = (LinearLayout) view.findViewById(R.id.ll_photo_grid3);

      try {
        Spannable span = SmileUtils.getSmiledText(context, matchs.getString("text"));
        tx_content.setText(span, BufferType.SPANNABLE);
        JSONObject content = (JSONObject) matchs.getJSONObject("content");

        if (content.getString("reason") != null && !content.getString("reason").equals("")) {
          ll_recomment.setVisibility(View.VISIBLE);
          recommend_msg.setText(content.get("reason").toString());
        } else {
          ll_recomment.setVisibility(View.GONE);
        }
        name.setText(content.getString("nickname"));
        time.setText(content.getString("time"));
        likeCount.setText(content.getString("comment_count"));
        like_state = content.getString("like_state");
        if (like_state.equals("0")) {
          zan.setImageResource(R.drawable.abc_match_heart);
        } else {
          zan.setImageResource(R.drawable.selectedlove);
        }
        like_users = content.getJSONArray("like_users");
        if (!content.getString("like_count").equals("0")) {
          commentCount.setText(content.getString("like_count"));
        }
        if (like_users != null) {
          if (Integer.parseInt(content.get("like_count").toString()) > 6) {
            zan_count.setVisibility(View.VISIBLE);
          } else {
            zan_count.setVisibility(View.GONE);
          }
          ll_zan.removeAllViews();
          for (int i = 0; i < like_users.length(); i++) {
            idUrl = like_users.getJSONObject(i).getString("id");
            if (i >= like_users.length() - 6) {
              CircleImageView header = new CircleImageView(context);
              header.setLayoutParams(new LayoutParams(60, 60));
              // new DownAndShowImageTask(like_users
              // .getJSONObject(i).getString("icon"), header)
              // .execute();
              loader.LoadImage(like_users.getJSONObject(i).getString("icon"), header);
              ll_zan.addView(header);
            }
          }
        }

        // new DownAndShowImageTask(content.getString("user_icon"),
        // icon)
        // .execute();
        loader.LoadImage(content.getString("user_icon"), icon);

        tx_yuan.setBackgroundResource(R.drawable.match_yuan);

        JSONArray imgs = (JSONArray) content.get("images");
        lay_zan.setOnClickListener(
            new OnClickListener() {

              @Override
              public void onClick(View v) {
                boolean flag = false;
                if (like_state.equals("0")) {
                  MobclickAgent.onEvent(context, "match_zan");
                  TCAgent.onEvent(context, "match_zan");
                  doPullDate(
                      flag,
                      "2007",
                      new MCHttpCallBack() {
                        @Override
                        public void onSuccess(MCHttpResp resp) {
                          super.onSuccess(resp);
                          try {
                            String resultCode = (String) resp.getJson().getString("result_code");
                            if ("0".equals(resultCode)) {

                              Toast.makeText(context, "点赞成功", Toast.LENGTH_SHORT).show();
                              // matchs.put("like_state", "1");
                              like_state = "1";
                              commentCount.setText(
                                  resp.getJson().getString("count_like").toString());
                              CircleImageView userIcon = new CircleImageView(context);
                              userIcon.setLayoutParams(new LayoutParams(60, 60));
                              loader.LoadImage(iconUrl, userIcon);
                              ll_zan.addView(userIcon, 0);
                              like_users.put(0, AppConfig.getInstance().getPlayerId());
                              zan.setImageResource(R.drawable.selectedlove);

                            } else {
                              Toast.makeText(context, "点赞失败", Toast.LENGTH_SHORT).show();
                            }
                          } catch (Exception e) {
                            e.printStackTrace();
                          }
                        }

                        @Override
                        public void onError(MCHttpResp resp) {
                          super.onError(resp);
                          CPorgressDialog.hideProgressDialog();
                          Toast.makeText(context, resp.getErrorMessage(), Toast.LENGTH_SHORT)
                              .show();
                        }
                      });
                } else {
                  doPullDate(
                      flag,
                      "2008",
                      new MCHttpCallBack() {
                        @Override
                        public void onSuccess(MCHttpResp resp) {
                          super.onSuccess(resp);
                          String resultCode;
                          try {
                            resultCode = (String) resp.getJson().getString("result_code");

                            if ("0".equals(resultCode)) {

                              Toast.makeText(context, "取消点赞成功", Toast.LENGTH_SHORT).show();
                              // matchs.put("like_state", "0");
                              like_state = "0";
                              for (int i = 0; i < like_users.length(); i++) {
                                idUrl = like_users.getJSONObject(i).getString("id");
                                if (idUrl.equals(AppConfig.getInstance().getPlayerId() + "")) {
                                  // like_users.remove(i);
                                  ll_zan.removeViewAt(i);
                                }
                              }
                              commentCount.setText(
                                  resp.getJson().getString("count_like").toString());
                              zan.setImageResource(R.drawable.abc_match_heart);

                            } else {
                              Toast.makeText(context, "取消点赞失败", Toast.LENGTH_SHORT).show();
                            }
                          } catch (Exception e) {
                            e.printStackTrace();
                          }
                        }

                        @Override
                        public void onError(MCHttpResp resp) {
                          super.onError(resp);
                          CPorgressDialog.hideProgressDialog();
                          Toast.makeText(context, resp.getErrorMessage(), Toast.LENGTH_SHORT)
                              .show();
                        }
                      });
                }
              }
            });

        ll_content.setOnClickListener(
            new OnClickListener() {

              @Override
              public void onClick(View view) {
                Intent intent = new Intent();
                intent.setClass(context, MatchCommentDetailActivity.class);
                intent.putExtra("commentid", j_recordId);
                context.startActivity(intent);
              }
            });
        if (imgs.length() < 1) {
          // oneHolder.photo.setVisibility(View.GONE);
          ll_photo.removeAllViews();
          ll_grid1.removeAllViews();
          ll_grid2.removeAllViews();
          ll_grid3.removeAllViews();
        } else if (imgs.length() == 1) {
          ll_photo.removeAllViews();
          ll_grid1.removeAllViews();
          ll_grid2.removeAllViews();
          ll_grid3.removeAllViews();
          ImageView photo = new ImageView(context);
          // 设置当前图像的图像(position为当前图像列表的位置)
          photo.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
          photo.setLayoutParams(
              new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
          // 设置Gallery组件的背景风格
          // oneHolder.photo.setVisibility(View.VISIBLE);
          StringBuffer s1 = new StringBuffer(imgs.getJSONObject(0).getString("url"));
          // new DownAndShowImageTask(s1.insert(s1.lastIndexOf("."),
          // "_M").toString(), photo).execute();
          loader.LoadImage(s1.insert(s1.lastIndexOf("."), "_M").toString(), photo);
          ll_photo.addView(photo);

        } else {
          if (imgs.length() < 4) {
            // 一行
            ll_grid1.removeAllViews();
            ll_grid2.removeAllViews();
            ll_grid3.removeAllViews();
            for (int i = 0; i < 3; i++) {
              addPhoto(i, ll_grid1, imgs);
            }
          } else if (imgs.length() > 3 && imgs.length() < 7) {
            // 两行
            ll_grid1.removeAllViews();
            ll_grid2.removeAllViews();
            ll_grid3.removeAllViews();
            for (int i = 0; i < 3; i++) {
              addPhoto(i, ll_grid1, imgs);
            }
            for (int i = 3; i < 6; i++) {
              addPhoto(i, ll_grid2, imgs);
            }
          } else if (imgs.length() > 6 && imgs.length() < 10) {
            // 三行
            ll_grid1.removeAllViews();
            ll_grid2.removeAllViews();
            ll_grid3.removeAllViews();
            for (int i = 0; i < 3; i++) {
              addPhoto(i, ll_grid1, imgs);
            }
            for (int i = 3; i < 6; i++) {
              addPhoto(i, ll_grid2, imgs);
            }
            for (int i = 6; i < 9; i++) {
              addPhoto(i, ll_grid3, imgs);
            }
          }
          // oneHolder.photo.setVisibility(View.GONE);
          // oneHolder.ll_content.removeView(oneHolder.photo);
          ll_photo.removeAllViews();
        }
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }

    } else if (TYPE_TWO == viewType) {
      view = inflater.inflate(R.layout.abc_match_board_item_match, null);
      TextView name = (TextView) view.findViewById(R.id.match_match_name);
      View tx_yuan = (View) view.findViewById(R.id.yuan);

      Spannable span;
      try {
        span = SmileUtils.getSmiledText(context, matchs.getString("text"));
        name.setText(span, BufferType.SPANNABLE);
      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }

      tx_yuan.setBackgroundResource(R.drawable.match_yuan_);
    } else if (TYPE_THREE == viewType) {
      view = inflater.inflate(R.layout.abc_match_board_item_activity, null);
      TextView name = (TextView) view.findViewById(R.id.match_activity_name);
      LinearLayout ll_content = (LinearLayout) view.findViewById(R.id.ll_content);
      TextView type = (TextView) view.findViewById(R.id.type);
      TextView statue = (TextView) view.findViewById(R.id.status);
      // View arron = (View) view.findViewById(R.id.match_arron);
      View tx_yuan = (View) view.findViewById(R.id.yuan);
      TextView tx_counts = (TextView) view.findViewById(R.id.tx_counts);
      try {

        // activitys_id = activitys.getString("id");
        // Map<String, String> map = new HashMap<String, String>();
        // map.put("id", activitys_id);

        name.setText(matchs.getString("text"));
        final JSONObject activity = (JSONObject) matchs.get("activity");
        final String j_type = activity.getString("type");
        // final String j_recordId = matchs.getString("record_id");
        // tx_counts.setText(text)
        type.setText(j_type.equals("0") ? "" : "投票");
        type.setBackgroundResource(
            j_type.equals("0") ? R.drawable.img_quiz : R.drawable.abc_button_roundcorner_toupiao);
        statue.setText(getStatus(activity.getString("state")));
        tx_yuan.setBackgroundResource(R.drawable.match_yuan);
        tx_counts.setText("已有" + activity.getString("join_count").toString() + "人参与");
        ll_content.setOnClickListener(
            new OnClickListener() {

              public void onClick(View v) {
                if (j_type.equals("0")) {
                  Intent intent = new Intent();
                  intent.setClass(context, CathecticActivity.class);
                  intent.putExtra("id", j_recordId);
                  context.startActivity(intent);
                } else {
                  Intent intent = new Intent();
                  intent.setClass(context, VoteActivity.class);
                  intent.putExtra("id", j_recordId);
                  context.startActivity(intent);
                }
              }
            });

      } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
      }
    }

    return view;
  }