Android Open Source - SimpleReader Child Adapter






From Project

Back to project page SimpleReader.

License

The source code is released under:

Apache License

If you think the Android project SimpleReader listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.dreamteam.app.wallpaper;
/*w  w  w  .ja va 2 s  .co  m*/
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.dreamteam.app.wallpaper.MyImageView.OnMeasureListener;
import com.dreamteam.app.wallpaper.NativeImageLoader.OnImageLoadListener;
import com.dreateam.app.ui.R;
import com.nineoldandroids.animation.AnimatorSet;
import com.nineoldandroids.animation.ObjectAnimator;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Point;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.ImageView;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.GridView;

@SuppressLint("UseSparseArrays")
public class ChildAdapter extends BaseAdapter {
  private Point mPoint = new Point(0, 0);
  private HashMap<Integer, Boolean> mSelectMap = new HashMap<Integer, Boolean>();
  private GridView mGridView;
  private List<String> list;
  protected LayoutInflater mInflater;
  private OnSelectListener onSelectListener;

  public ChildAdapter(Context context, List<String> list, GridView mGridView) {
    this.list = list;
    this.mGridView = mGridView;
    mInflater = LayoutInflater.from(context);
  }
  
  public void setOnSelectListener(OnSelectListener onSelectListener) {
    this.onSelectListener = onSelectListener;
  }
  
  @Override
  public int getCount() {
    return list.size();
  }

  @Override
  public Object getItem(int position) {
    return list.get(position);
  }


  @Override
  public long getItemId(int position) {
    return position;
  }
  
  @Override
  public View getView(final int position, View convertView, ViewGroup parent) {
    final ViewHolder viewHolder;
    final String path = list.get(position);
    
    if(convertView == null){
      convertView = mInflater.inflate(R.layout.grid_child_item, null);
      viewHolder = new ViewHolder();
      viewHolder.mImageView = (MyImageView) convertView.findViewById(R.id.child_image);
      viewHolder.mCheckBox = (CheckBox) convertView.findViewById(R.id.child_checkbox);
      
      viewHolder.mImageView.setOnMeasureListener(new OnMeasureListener() {
        @Override
        public void onMeasureSize(int width, int height) {
          mPoint.set(width, height);
        }
      });
      
      convertView.setTag(viewHolder);
    }else{
      viewHolder = (ViewHolder) convertView.getTag();
      viewHolder.mImageView.setImageResource(R.drawable.friends_sends_pictures_no);
    }
    viewHolder.mImageView.setTag(path);
    viewHolder.mCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
      @Override
      public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if(!mSelectMap.containsKey(position) || !mSelectMap.get(position)){
          addAnimation(viewHolder.mCheckBox);
        }
        mSelectMap.put(position, isChecked);
        if(onSelectListener != null && isChecked) {
          onSelectListener.onSelect(path);
        } 
      }
    });
    
    viewHolder.mCheckBox.setChecked(mSelectMap.containsKey(position) ? mSelectMap.get(position) : false);
    
    Bitmap bitmap = NativeImageLoader.getInstance().loadImage(path, mPoint, 
        new OnImageLoadListener() {
      @Override
      public void onImageLoad(String path, Bitmap bitmap) {
        ImageView imageView = (ImageView) mGridView.findViewWithTag(path);
        if(bitmap != null && imageView != null){
          imageView.setImageBitmap(bitmap);
        }
      }});
    
    if(bitmap != null){
      viewHolder.mImageView.setImageBitmap(bitmap);
    }else{
      viewHolder.mImageView.setImageResource(R.drawable.friends_sends_pictures_no);
    }
    
    return convertView;
  }
  
  private void addAnimation(View view){
    float [] vaules = new float[]{0.5f, 0.6f, 0.7f, 0.8f, 0.9f, 1.0f, 1.1f, 1.2f, 1.3f, 1.25f, 1.2f, 1.15f, 1.1f, 1.0f};
    AnimatorSet set = new AnimatorSet();
    set.playTogether(ObjectAnimator.ofFloat(view, "scaleX", vaules), 
        ObjectAnimator.ofFloat(view, "scaleY", vaules));
        set.setDuration(150);
    set.start();
  }
  
  
  public List<Integer> getSelectItems(){
    List<Integer> list = new ArrayList<Integer>();
    for(Iterator<Map.Entry<Integer, Boolean>> it = mSelectMap.entrySet().iterator(); it.hasNext();){
      Map.Entry<Integer, Boolean> entry = it.next();
      if(entry.getValue()){
        list.add(entry.getKey());
      }
    }
    return list;
  }
  
  
  public static class ViewHolder{
    public MyImageView mImageView;
    public CheckBox mCheckBox;
  }

  
  public interface OnSelectListener {
    public void onSelect(String path);
  }


}




Java Source Code List

com.dreamteam.app.adapter.CategoryDetailAdapter.java
com.dreamteam.app.adapter.FeedCategoryAdapter.java
com.dreamteam.app.adapter.GridAdapter.java
com.dreamteam.app.adapter.GuideViewPagerAdapter.java
com.dreamteam.app.adapter.ItemListAdapter.java
com.dreamteam.app.adapter.MPagerAdapter.java
com.dreamteam.app.commons.AppConfig.java
com.dreamteam.app.commons.AppContext.java
com.dreamteam.app.commons.HtmlFilter.java
com.dreamteam.app.commons.IFlyHelper.java
com.dreamteam.app.commons.ItemListEntityParser.java
com.dreamteam.app.commons.SectionHelper.java
com.dreamteam.app.commons.SeriaHelper.java
com.dreamteam.app.commons.SkinManager.java
com.dreamteam.app.commons.UIHelper.java
com.dreamteam.app.config.Contants.java
com.dreamteam.app.db.DbManager.java
com.dreamteam.app.db.FavoItemDbHelper.java
com.dreamteam.app.db.FeedDBManager.java
com.dreamteam.app.db.provider.RSSFeedCategoryProvider.java
com.dreamteam.app.entity.FeedItem.java
com.dreamteam.app.entity.Feed.java
com.dreamteam.app.entity.ItemListEntity.java
com.dreamteam.app.entity.RSSFeedCategroy.java
com.dreamteam.app.entity.Section.java
com.dreamteam.app.img.FileCacheManager.java
com.dreamteam.app.img.FileCache.java
com.dreamteam.app.img.ICache.java
com.dreamteam.app.img.ImageLoadTask.java
com.dreamteam.app.img.ImageLoad.java
com.dreamteam.app.img.ImageLoader.java
com.dreamteam.app.img.MemoryCache.java
com.dreamteam.app.rss.Dates.java
com.dreamteam.app.rss.Integers.java
com.dreamteam.app.rss.MediaAttributes.java
com.dreamteam.app.rss.MediaEnclosure.java
com.dreamteam.app.rss.MediaThumbnail.java
com.dreamteam.app.rss.RSSBase.java
com.dreamteam.app.rss.RSSConfig.java
com.dreamteam.app.rss.RSSException.java
com.dreamteam.app.rss.RSSFault.java
com.dreamteam.app.rss.RSSFeed.java
com.dreamteam.app.rss.RSSHandler.java
com.dreamteam.app.rss.RSSItem.java
com.dreamteam.app.rss.RSSLoader.java
com.dreamteam.app.rss.RSSParserSPI.java
com.dreamteam.app.rss.RSSParser.java
com.dreamteam.app.rss.RSSReaderException.java
com.dreamteam.app.rss.RSSReader.java
com.dreamteam.app.rss.Resources.java
com.dreamteam.app.ui.About.java
com.dreamteam.app.ui.BaseActivity.java
com.dreamteam.app.ui.BaseTitledActivity.java
com.dreamteam.app.ui.CategoryDetailActivity.java
com.dreamteam.app.ui.ColorListActivity.java
com.dreamteam.app.ui.FavoriteItemList.java
com.dreamteam.app.ui.FeedCategoryActivity.java
com.dreamteam.app.ui.FeedbackUI.java
com.dreamteam.app.ui.GuideActivity.java
com.dreamteam.app.ui.ImageDialog.java
com.dreamteam.app.ui.ImagesBrowseActivity.java
com.dreamteam.app.ui.ItemDetailActivity.java
com.dreamteam.app.ui.ItemListActivity.java
com.dreamteam.app.ui.LocalImageBrowseActivity.java
com.dreamteam.app.ui.LoginDialog.java
com.dreamteam.app.ui.MainActivity.java
com.dreamteam.app.ui.Setting.java
com.dreamteam.app.ui.SplashActivity.java
com.dreamteam.app.ui.SwitchBgActivity.java
com.dreamteam.app.ui.WidgetProvider.java
com.dreamteam.app.ui.adapter.ColorListAdapter.java
com.dreamteam.app.utils.CategoryNameExchange.java
com.dreamteam.app.utils.DateUtils.java
com.dreamteam.app.utils.FileUtils.java
com.dreamteam.app.utils.HttpUtils.java
com.dreamteam.app.utils.ImageLoader.java
com.dreamteam.app.utils.ImageUtils.java
com.dreamteam.app.utils.Logger.java
com.dreamteam.app.utils.MD5.java
com.dreamteam.app.utils.StringUtils.java
com.dreamteam.app.wallpaper.ChildAdapter.java
com.dreamteam.app.wallpaper.GroupGridAdapter.java
com.dreamteam.app.wallpaper.ImageBean.java
com.dreamteam.app.wallpaper.MyImageView.java
com.dreamteam.app.wallpaper.NativeImageLoader.java
com.dreamteam.app.wallpaper.WallPaperManager.java
com.dreamteam.custom.ui.PathAnimations.java
com.dreamteam.custom.ui.PullToRefreshListView.java