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(); }
/** 支持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); } }
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; }
@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"); }