@Override
    public Object instantiateItem(ViewGroup container, int position) {
      Context context = ImageShowActivity.this;

      int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_medium);
      ImageLocation imageLocation = imageLocations.get(position);
      if (imageLocation.isLocal()) {
        ImageView imageView = new ImageView(context);
        imageView.setPadding(padding, padding, padding, padding);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setImageURI(imageLocation.getUri());
        container.addView(imageView, 0);
        return imageView;
      } else {

        NetworkImageView imageView = new NetworkImageView(context);

        imageView.setPadding(padding, padding, padding, padding);
        imageView.setScaleType(ImageView.ScaleType.CENTER_INSIDE);
        imageView.setImageUrl(
            API_IMAGE_GET + imageLocation.getId(), BaseApplication.baseApplication.mImageLoader);

        container.addView(imageView, 0);
        return imageView;
      }
    }
  @SuppressLint("NewApi")
  private void resue() {
    String url = Config.SERVICEURL;
    url = url.substring(0, url.length() - 1);
    for (int i = 0; i < pictureTypes.size(); i++) {
      NetworkImageView niv = new NetworkImageView(this);

      niv.setImageUrl(
          url + pictureTypes.get(i).getTp_pic(),
          new VolleyUtils()
              .getImageLoader(
                  PictureTypeActivity.this,
                  new HttpCallback() {

                    @Override
                    public void httpCallback(Object oj) {
                      // TODO Auto-generated method stub
                      if (wd.isShowing()) {
                        wd.dismiss();
                      }
                    }
                  }));

      niv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
      niv.setScaleType(ScaleType.FIT_XY);
      ims.addView(niv);
    }
    Log.i("sys", "图片添加完成");
  }
  private void initViewPager() {
    homeViewPager = (ViewPager) headerView.findViewById(R.id.home_viewpager);
    ViewGroup dotContainer = (ViewGroup) headerView.findViewById(R.id.dot_container);

    // 创建广告页
    List<View> adsImageList = new ArrayList<View>();
    NetworkImageView ads1 = new NetworkImageView(getActivity());
    ads1.setScaleType(ImageView.ScaleType.FIT_XY);
    ads1.setBackgroundColor(Color.TRANSPARENT);
    adsImageList.add(ads1);
    NetworkImageView ads2 = new NetworkImageView(getActivity());
    ads2.setScaleType(ImageView.ScaleType.FIT_XY);
    ads2.setBackgroundColor(Color.TRANSPARENT);
    adsImageList.add(ads2);
    NetworkImageView ads3 = new NetworkImageView(getActivity());
    ads3.setScaleType(ImageView.ScaleType.FIT_XY);
    ads3.setBackgroundColor(Color.TRANSPARENT);
    adsImageList.add(ads3);
    // 从服务器加载广告图片并显示
    String adUrl = "http://182.61.8.185/images/3/3.jpg";
    Traffic.showNetworkImage(requestQueue, adUrl, ads1);
    Traffic.showNetworkImage(requestQueue, adUrl, ads2);
    Traffic.showNetworkImage(requestQueue, adUrl, ads3);

    // 对dotImageViews进行填充
    dotImageViews = new ImageView[adsImageList.size()];
    // 导航圆点
    for (int i = 0; i < adsImageList.size(); i++) {
      dotImageView = new ImageView(getActivity());
      dotImageView.setLayoutParams(new LinearLayout.LayoutParams(20, 20));
      dotImageView.setPadding(5, 5, 5, 5);
      dotImageViews[i] = dotImageView;
      if (i == 0) {
        dotImageViews[i].setImageResource(R.drawable.dot_selected);
      } else {
        dotImageViews[i].setImageResource(R.drawable.dot);
      }
      dotContainer.addView(dotImageViews[i]);
    }

    homeViewPager.setAdapter(new AdsAdapter(adsImageList));
    homeViewPager.addOnPageChangeListener(
        new ViewPager.OnPageChangeListener() {
          @Override
          public void onPageScrolled(
              int position, float positionOffset, int positionOffsetPixels) {}

          @Override
          public void onPageSelected(int position) {
            what.getAndSet(position);
            for (int i = 0; i < dotImageViews.length; i++) {
              dotImageViews[position].setImageResource(R.drawable.dot_selected);
              if (position != i) {
                dotImageViews[i].setImageResource(R.drawable.dot);
              }
            }
          }

          @Override
          public void onPageScrollStateChanged(int state) {}
        });
    homeViewPager.setOnTouchListener(
        new View.OnTouchListener() {

          @Override
          public boolean onTouch(View v, MotionEvent event) {
            switch (event.getAction()) {
              case MotionEvent.ACTION_DOWN:
              case MotionEvent.ACTION_MOVE:
                isContinue = false;
              case MotionEvent.ACTION_UP:
                isContinue = true;
                break;
              default:
                isContinue = true;
                break;
            }
            return false;
          }
        });
    new Thread(
            new Runnable() {
              @Override
              public void run() {
                while (true) {
                  if (isContinue) {
                    viewHandler.sendEmptyMessage(what.get());
                    whatOpition();
                  }
                }
              }
            })
        .start();

    homeViewPager.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            // 启动广告活动
          }
        });
  }
Exemple #4
0
  private void buildView(final Context context, TypedArray ta) {
    int thumbnailBackground = ta.getColor(R.styleable.PostView_thumbnail_background, 0);
    int replyCountColor = ta.getColor(R.styleable.PostView_reply_count_color, 0);

    int iconPadding = ta.getDimensionPixelSize(R.styleable.PostView_icon_padding, 0);
    int iconWidth = ta.getDimensionPixelSize(R.styleable.PostView_icon_width, 0);
    int iconHeight = ta.getDimensionPixelSize(R.styleable.PostView_icon_height, 0);
    int gridHeight = ta.getDimensionPixelSize(R.styleable.PostView_grid_height, 0);
    int optionsSpacing = ta.getDimensionPixelSize(R.styleable.PostView_options_spacing, 0);
    int titleSize = ta.getDimensionPixelSize(R.styleable.PostView_title_size, 0);
    int optionsLeftPadding = ta.getDimensionPixelSize(R.styleable.PostView_options_left_padding, 0);
    int optionsTopPadding = ta.getDimensionPixelSize(R.styleable.PostView_options_top_padding, 0);
    int optionsRightPadding =
        ta.getDimensionPixelSize(R.styleable.PostView_options_right_padding, 0);
    int optionsBottomPadding =
        ta.getDimensionPixelSize(R.styleable.PostView_options_bottom_padding, 0);
    int lastSeenHeight = ta.getDimensionPixelSize(R.styleable.PostView_last_seen_height, 0);

    int postListMaxHeight =
        ta.getDimensionPixelSize(R.styleable.PostView_list_comment_max_height, 0);

    int postCommentSize = 0;
    int commentPadding = 0;
    int postPadding = 0;
    int imageSize = 0;
    int repliesCountSize = 0;
    if (isList()) {
      postCommentSize =
          (int)
              TypedValue.applyDimension(
                  TypedValue.COMPLEX_UNIT_SP,
                  ThemeHelper.getInstance().getFontSize(),
                  getResources().getDisplayMetrics());
      commentPadding = ta.getDimensionPixelSize(R.styleable.PostView_list_comment_padding, 0);
      postPadding = ta.getDimensionPixelSize(R.styleable.PostView_list_padding, 0);
      imageSize = ta.getDimensionPixelSize(R.styleable.PostView_list_image_size, 0);
      repliesCountSize = ta.getDimensionPixelSize(R.styleable.PostView_list_replies_count_size, 0);
    } else if (isGrid()) {
      postCommentSize =
          (int)
              TypedValue.applyDimension(
                  TypedValue.COMPLEX_UNIT_SP,
                  ThemeHelper.getInstance().getFontSize() - 1,
                  getResources().getDisplayMetrics());
      commentPadding = ta.getDimensionPixelSize(R.styleable.PostView_grid_comment_padding, 0);
      postPadding = ta.getDimensionPixelSize(R.styleable.PostView_grid_padding, 0);
      imageSize = ta.getDimensionPixelSize(R.styleable.PostView_grid_image_size, 0);
      repliesCountSize = ta.getDimensionPixelSize(R.styleable.PostView_grid_replies_count_size, 0);
    }

    RelativeLayout wrapper = new RelativeLayout(context);
    wrapper.setLayoutParams(matchParams);

    full = new LinearLayout(context);
    if (isList()) {
      full.setOrientation(HORIZONTAL);
      wrapper.addView(full, matchParams);
    } else if (isGrid()) {
      full.setOrientation(VERTICAL);
      wrapper.addView(full, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, gridHeight));
    }

    LinearLayout imageContainer = new LinearLayout(context);
    imageContainer.setOrientation(VERTICAL);
    imageContainer.setBackgroundColor(thumbnailBackground);

    // Create thumbnail
    imageView = new CustomNetworkImageView(context);
    imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
    imageView.setFadeIn(100);

    imageView.setOnClickListener(
        new View.OnClickListener() {
          @Override
          public void onClick(View v) {
            manager.onThumbnailClicked(post);
          }
        });

    if (isList()) {
      imageContainer.addView(imageView, new LinearLayout.LayoutParams(imageSize, imageSize));
      full.addView(imageContainer, wrapMatchParams);
      full.setMinimumHeight(imageSize);
    } else if (isGrid()) {
      imageContainer.addView(
          imageView, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, imageSize));
      full.addView(imageContainer, matchWrapParams);
    }

    contentContainer = new LinearLayout(context);
    contentContainer.setOrientation(VERTICAL);

    LinearLayout titleContainer = new LinearLayout(context);
    titleContainer.setOrientation(HORIZONTAL);

    if (isList()) {
      // 25 padding to give optionsView some space
      titleContainer.setPadding(0, 0, optionsSpacing, 0);
    }

    titleView = new TextView(context);
    titleView.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
    titleView.setPadding(postPadding, postPadding, postPadding, 0);

    titleContainer.addView(titleView, wrapParams);

    contentContainer.addView(titleContainer, matchWrapParams);

    iconsView = new LinearLayout(context);
    iconsView.setOrientation(HORIZONTAL);
    iconsView.setPadding(postPadding, iconPadding, postPadding, 0);

    stickyView = new ImageView(context);
    stickyView.setImageDrawable(IconCache.stickyIcon);
    iconsView.addView(stickyView, new LinearLayout.LayoutParams(iconWidth, iconHeight));

    closedView = new ImageView(context);
    closedView.setImageDrawable(IconCache.closedIcon);
    iconsView.addView(closedView, new LinearLayout.LayoutParams(iconWidth, iconHeight));

    deletedView = new ImageView(context);
    deletedView.setImageDrawable(IconCache.trashIcon);
    iconsView.addView(deletedView, new LinearLayout.LayoutParams(iconWidth, iconHeight));

    archivedView = new ImageView(context);
    archivedView.setImageDrawable(IconCache.archivedIcon);
    iconsView.addView(archivedView, new LinearLayout.LayoutParams(iconWidth, iconHeight));

    countryView = new NetworkImageView(context);
    countryView.setScaleType(ImageView.ScaleType.FIT_CENTER);
    iconsView.addView(countryView, new LinearLayout.LayoutParams(iconWidth, iconHeight));

    contentContainer.addView(iconsView, matchWrapParams);

    commentView = new TextView(context);
    commentView.setTextSize(TypedValue.COMPLEX_UNIT_PX, postCommentSize);

    if (isList()) {
      commentView.setPadding(postPadding, commentPadding, postPadding, commentPadding);

      if (manager.getLoadable().isBoardMode() || manager.getLoadable().isCatalogMode()) {
        commentView.setMaxHeight(postListMaxHeight);
      }
    } else if (isGrid()) {
      commentView.setPadding(postPadding, commentPadding, postPadding, 0);
      // So that is fills up all the height using weight later on
      commentView.setMinHeight(10000);
    }

    if (isList()) {
      contentContainer.addView(commentView, matchWrapParams);
    } else if (isGrid()) {
      contentContainer.addView(
          commentView, new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, 0, 1f));
    }

    repliesCountView = new TextView(context);
    Utils.setPressedDrawable(repliesCountView);
    repliesCountView.setTextColor(replyCountColor);
    repliesCountView.setPadding(postPadding, postPadding, postPadding, postPadding);
    repliesCountView.setTextSize(TypedValue.COMPLEX_UNIT_PX, repliesCountSize);
    repliesCountView.setSingleLine();

    contentContainer.addView(repliesCountView, wrapParams);

    lastSeen = new View(context);
    lastSeen.setBackgroundColor(0xffff0000);
    contentContainer.addView(lastSeen, new LayoutParams(LayoutParams.MATCH_PARENT, lastSeenHeight));

    if (!manager.getLoadable().isThreadMode()) {
      Utils.setPressedDrawable(contentContainer);
    }

    full.addView(contentContainer, matchWrapParams);

    optionsView = new ImageView(context);
    optionsView.setImageResource(R.drawable.ic_overflow);
    Utils.setPressedDrawable(optionsView);
    optionsView.setPadding(
        optionsLeftPadding, optionsTopPadding, optionsRightPadding, optionsBottomPadding);
    optionsView.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(final View v) {
            PopupMenu popupMenu = new PopupMenu(context, v);
            manager.showPostOptions(post, popupMenu);
            popupMenu.show();
            if (ThemeHelper.getInstance().getTheme().isLightTheme) {
              optionsView.setImageResource(R.drawable.ic_overflow_black);
              popupMenu.setOnDismissListener(
                  new PopupMenu.OnDismissListener() {
                    @Override
                    public void onDismiss(final PopupMenu menu) {
                      optionsView.setImageResource(R.drawable.ic_overflow);
                    }
                  });
            }
          }
        });
    wrapper.addView(optionsView, wrapParams);
    RelativeLayout.LayoutParams optionsParams =
        (RelativeLayout.LayoutParams) optionsView.getLayoutParams();
    optionsParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
    optionsParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    optionsView.setLayoutParams(optionsParams);

    addView(wrapper, matchParams);

    wrapper.setOnClickListener(this);
  }