public void initialize() {
   images.clear();
   final String[] columns = {MediaStore.Images.Thumbnails._ID};
   final String orderBy = MediaStore.Images.Media._ID;
   Cursor imagecursor =
       managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null, null, orderBy);
   if (imagecursor != null) {
     int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);
     int count = imagecursor.getCount();
     for (int i = 0; i < count; i++) {
       imagecursor.moveToPosition(i);
       int id = imagecursor.getInt(image_column_index);
       ImageItem imageItem = new ImageItem();
       imageItem.id = id;
       lastId = id;
       imageItem.img =
           MediaStore.Images.Thumbnails.getThumbnail(
               getApplicationContext().getContentResolver(),
               id,
               MediaStore.Images.Thumbnails.MICRO_KIND,
               null);
       images.add(imageItem);
     }
     imagecursor.close();
   }
   notifyDataSetChanged();
 }
 public void checkForNewImages() {
   // Here we'll only check for newer images
   final String[] columns = {MediaStore.Images.Thumbnails._ID};
   final String orderBy = MediaStore.Images.Media._ID;
   Cursor imagecursor =
       managedQuery(
           MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
           columns,
           MediaStore.Images.Media._ID + " > " + lastId,
           null,
           orderBy);
   int image_column_index = imagecursor.getColumnIndex(MediaStore.Images.Media._ID);
   int count = imagecursor.getCount();
   for (int i = 0; i < count; i++) {
     imagecursor.moveToPosition(i);
     int id = imagecursor.getInt(image_column_index);
     ImageItem imageItem = new ImageItem();
     imageItem.id = id;
     lastId = id;
     imageItem.img =
         MediaStore.Images.Thumbnails.getThumbnail(
             getApplicationContext().getContentResolver(),
             id,
             MediaStore.Images.Thumbnails.MICRO_KIND,
             null);
     imageItem.selection = true; // newly added item will be selected by default
     images.add(imageItem);
   }
   imagecursor.close();
   notifyDataSetChanged();
 }
Exemple #3
0
  /** 支持multipart方式上传图片 */
  public Response multPartURL(String url, PostParameter[] params, ImageItem item, String token)
      throws WeiboException {
    PostMethod postMethod = new PostMethod(url);
    try {
      Part[] parts = null;
      if (params == null) {
        parts = new Part[1];
      } else {
        parts = new Part[params.length + 1];
      }
      if (params != null) {
        int i = 0;
        for (PostParameter entry : params) {
          parts[i++] = new StringPart(entry.getName(), (String) entry.getValue());
        }
        parts[parts.length - 1] =
            new ByteArrayPart(item.getContent(), item.getName(), item.getContentType());
      }
      postMethod.setRequestEntity(new MultipartRequestEntity(parts, postMethod.getParams()));

      return httpRequest(postMethod, token);

    } catch (Exception ex) {
      throw new WeiboException(ex.getMessage(), ex, -1);
    }
  }
Exemple #4
0
  public Response multPartURL(
      String url, PostParameter[] params, ImageItem item, boolean authenticated)
      throws WeiboException {
    PostMethod post = new PostMethod(url);
    try {
      org.apache.commons.httpclient.HttpClient client = getHttpClient();
      long t = System.currentTimeMillis();
      Part[] parts = null;
      if (params == null) {
        parts = new Part[1];
      } else {
        parts = new Part[params.length + 1];
      }
      if (params != null) {
        int i = 0;
        for (PostParameter entry : params) {
          parts[i++] = new StringPart(entry.getName(), (String) entry.getValue());
        }
        parts[parts.length - 1] =
            new ByteArrayPart(item.getContent(), item.getName(), item.getContentType());
      }
      post.setRequestEntity(new MultipartRequestEntity(parts, post.getParams()));
      List<Header> headers = new ArrayList<Header>();

      if (authenticated) {
        if (oauth == null) {}
        String authorization = null;
        if (null != oauth) {
          // use OAuth
          authorization = oauth.generateAuthorizationHeader("POST", url, params, oauthToken);
        } else {
          throw new IllegalStateException(
              "Neither user ID/password combination nor OAuth consumer key/secret combination supplied");
        }
        headers.add(new Header("Authorization", authorization));
        log("Authorization: " + authorization);
      }
      client.getHostConfiguration().getParams().setParameter("http.default-headers", headers);
      client.executeMethod(post);

      Response response = new Response();
      response.setResponseAsString(post.getResponseBodyAsString());
      response.setStatusCode(post.getStatusCode());

      log(
          "multPartURL URL:"
              + url
              + ", result:"
              + response
              + ", time:"
              + (System.currentTimeMillis() - t));
      return response;
    } catch (Exception ex) {
      throw new WeiboException(ex.getMessage(), ex, -1);
    } finally {
      post.releaseConnection();
    }
  }
  public List<IDataset> getSelectionData(GalleryItem[] items) {

    final List<IDataset> ys = new ArrayList<IDataset>(11);
    for (GalleryItem item : items) {
      final ImageItem ii = new ImageItem();
      ii.setIndex(item.getItemCount());
      ii.setItem(item);
      try {
        IDataset slice = info.getData(true, ii);
        slice.setName(selectionDataLabel + " " + info.getItemName(item.getItemCount(), false));
        ys.add(slice);
      } catch (Exception e) {
        logger.error("Cannot slice ", e);
        continue;
      }
    }
    return ys;
  }
  protected List<GallerySelection> getSelectionPaths(GalleryItem[] items) {

    final List<GallerySelection> sels = new ArrayList<GallerySelection>(11);
    for (GalleryItem item : items) {
      final ImageItem ii = new ImageItem();
      ii.setIndex(item.getItemCount());
      ii.setItem(item);
      try {
        GallerySelection sel = new GallerySelection();
        sel.setPath(info.getPath(ii.getIndex()));
        sel.setName(selectionDataLabel + " " + info.getItemName(item.getItemCount(), false));
        sel.setIndex(ii.getIndex());
        sels.add(sel);
      } catch (Exception e) {
        logger.error("Cannot slice ", e);
        continue;
      }
    }
    return sels;
  }
Exemple #7
0
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    ViewHolder holder;

    if (row == null) {
      LayoutInflater inflater = ((Activity) context).getLayoutInflater();
      row = inflater.inflate(layoutResourceId, parent, false);
      holder = new ViewHolder();
      holder.imageTitle = (TextView) row.findViewById(R.id.text);
      holder.image = (ImageView) row.findViewById(R.id.picture);
      row.setTag(holder);
    } else {
      holder = (ViewHolder) row.getTag();
    }

    ImageItem item = data.get(position);
    holder.imageTitle.setText(item.getTitle());
    holder.image.setImageResource(item.getImage());
    return row;
  }
  /** 得到图片集 */
  void buildImagesBucketList() {
    long startTime = System.currentTimeMillis();

    // 构造缩略图索引
    getThumbnail();

    // 构造相册索引
    String columns[] =
        new String[] {
          BaseColumns._ID,
          ImageColumns.BUCKET_ID,
          ImageColumns.PICASA_ID,
          MediaColumns.DATA,
          MediaColumns.DISPLAY_NAME,
          MediaColumns.TITLE,
          MediaColumns.SIZE,
          ImageColumns.BUCKET_DISPLAY_NAME
        };
    // 得到一个游标
    Cursor cur = cr.query(Media.EXTERNAL_CONTENT_URI, columns, null, null, null);
    if (cur.moveToFirst()) {
      // 获取指定列的索引
      int photoIDIndex = cur.getColumnIndexOrThrow(BaseColumns._ID);
      int photoPathIndex = cur.getColumnIndexOrThrow(MediaColumns.DATA);
      int photoNameIndex = cur.getColumnIndexOrThrow(MediaColumns.DISPLAY_NAME);
      int photoTitleIndex = cur.getColumnIndexOrThrow(MediaColumns.TITLE);
      int photoSizeIndex = cur.getColumnIndexOrThrow(MediaColumns.SIZE);
      int bucketDisplayNameIndex = cur.getColumnIndexOrThrow(ImageColumns.BUCKET_DISPLAY_NAME);
      int bucketIdIndex = cur.getColumnIndexOrThrow(ImageColumns.BUCKET_ID);
      int picasaIdIndex = cur.getColumnIndexOrThrow(ImageColumns.PICASA_ID);
      // 获取图片总数
      int totalNum = cur.getCount();

      do {
        String _id = cur.getString(photoIDIndex);
        String name = cur.getString(photoNameIndex);
        String path = cur.getString(photoPathIndex);
        String title = cur.getString(photoTitleIndex);
        String size = cur.getString(photoSizeIndex);
        String bucketName = cur.getString(bucketDisplayNameIndex);
        String bucketId = cur.getString(bucketIdIndex);
        String picasaId = cur.getString(picasaIdIndex);

        Log.i(
            TAG,
            _id
                + ", bucketId: "
                + bucketId
                + ", picasaId: "
                + picasaId
                + " name:"
                + name
                + " path:"
                + path
                + " title: "
                + title
                + " size: "
                + size
                + " bucket: "
                + bucketName
                + "---");

        ImageBucket bucket = bucketList.get(bucketId);
        if (bucket == null) {
          bucket = new ImageBucket();
          bucketList.put(bucketId, bucket);
          bucket.imageList = new ArrayList<ImageItem>();
          bucket.bucketName = bucketName;
        }
        bucket.count++;
        ImageItem imageItem = new ImageItem();
        imageItem.imageId = _id;
        imageItem.imagePath = path;
        imageItem.thumbnailPath = thumbnailList.get(_id);
        bucket.imageList.add(imageItem);

      } while (cur.moveToNext());
    }

    Iterator<Entry<String, ImageBucket>> itr = bucketList.entrySet().iterator();
    while (itr.hasNext()) {
      Map.Entry<String, ImageBucket> entry = itr.next();
      ImageBucket bucket = entry.getValue();
      Log.d(TAG, entry.getKey() + ", " + bucket.bucketName + ", " + bucket.count + " ---------- ");
      for (int i = 0; i < bucket.imageList.size(); ++i) {
        ImageItem image = bucket.imageList.get(i);
        Log.d(TAG, "----- " + image.imageId + ", " + image.imagePath + ", " + image.thumbnailPath);
      }
    }
    hasBuildImagesBucketList = true;
    long endTime = System.currentTimeMillis();
    Log.d(TAG, "use time: " + (endTime - startTime) + " ms");
  }