Android Open Source - SimpleReader Local Image Browse Activity






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.ui;
//from   w  ww  .j  a v  a  2 s.c  o m
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import android.annotation.SuppressLint;
import android.app.ProgressDialog;
import android.content.ContentResolver;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.Toast;

import com.dreamteam.app.utils.FileUtils;
import com.dreamteam.app.wallpaper.GroupGridAdapter;
import com.dreamteam.app.wallpaper.ImageBean;
import com.dreateam.app.ui.R;

@SuppressLint("HandlerLeak")
public class LocalImageBrowseActivity extends BaseTitledActivity {
  private static final int SUCCESS = 0;
  private HashMap<String, List<String>> groups;
  private List<ImageBean> groupImageList;
  private GridView gridView;
  private ProgressDialog pd;
  
  private Handler handler = new Handler() {
    public void handleMessage(android.os.Message msg) {
      switch(msg.what) {
      case SUCCESS:
        pd.dismiss();
        gridView.setAdapter(new GroupGridAdapter(LocalImageBrowseActivity.this, groupImageList, gridView));
        break;
      }
    };
  };

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initParam();
    initView();
    initData();
  }

  private void initParam() {
    groups = new HashMap<String, List<String>>();
    groupImageList = new ArrayList<ImageBean>();
  }

  private void initView() {
    setView(R.layout.activity_local_image_browse);
    gridView = (GridView) findViewById(R.id.local_image_browse_grid);
    setTitleText(R.string.wallpaper_local_img_browse);
    setLeftButtonListener(new OnClickListener() {
      @Override
      public void onClick(View v) {
        finish();
      }
    });

    hideRightButton();
    
    gridView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
        List<String> childList = groups.get(groupImageList.get(position).getFolderName());
        
        Intent mIntent = new Intent(LocalImageBrowseActivity.this, ImagesBrowseActivity.class);
        mIntent.putStringArrayListExtra("data", (ArrayList<String>)childList);
        startActivity(mIntent);
      }
    });
  }

  private void initData() {
    if (!FileUtils.hasSDCard()) {
      Toast.makeText(this, "cannot found sd card", Toast.LENGTH_SHORT)
          .show();
      return;
    }

    pd = ProgressDialog.show(this, "info",
        "loing local images, please wait...");

    new Thread(new Runnable() {
      @Override
      public void run() {
        Uri imageUri = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        ContentResolver resolver = getContentResolver();
        Cursor cursor = resolver.query(imageUri, null,
            MediaStore.Images.Media.MIME_TYPE + "=? or "
                + MediaStore.Images.Media.MIME_TYPE + "=?",
            new String[] { "image/jpeg", "image/png" },
            MediaStore.Images.Media.DATE_MODIFIED);
        while(cursor.moveToNext()) {
          String path = cursor.getString(cursor
              .getColumnIndex(MediaStore.Images.Media.DATA));
          
          String parentName = new File(path).getParentFile().getName();
          
          if (!groups.containsKey(parentName)) {
            List<String> chileList = new ArrayList<String>();
            chileList.add(path);
            groups.put(parentName, chileList);
          } else {
            groups.get(parentName).add(path);
          }
        }
        
        cursor.close();
        
        groupImageList = subGroupOfImage(groups);
        handler.sendEmptyMessage(SUCCESS);
      }
    }).start();
  }
  
  /**
   * ????????GridView??????????????????????????????HashMap?
   * ?????????HashMap?????????List
   * 
   * @param mGruopMap
   * @return
   */
  private List<ImageBean> subGroupOfImage(HashMap<String, List<String>> mGruopMap){
    if(mGruopMap.size() == 0){
      return null;
    }
    List<ImageBean> list = new ArrayList<ImageBean>();
    
    Iterator<Map.Entry<String, List<String>>> it = mGruopMap.entrySet().iterator();
    while (it.hasNext()) {
      Map.Entry<String, List<String>> entry = it.next();
      ImageBean mImageBean = new ImageBean();
      String key = entry.getKey();
      List<String> value = entry.getValue();
      
      mImageBean.setFolderName(key);
      mImageBean.setImageCounts(value.size());
      mImageBean.setTopImagePath(value.get(0));//????????????
      
      list.add(mImageBean);
    }
    
    return list;
    
  }
}




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