0

这是我用来在gridview中显示画廊但在gridview中显示所有图片的代码

示例链接 1图像,但我想显示这样的画廊

http://www.google.com.pk/imgres?hl=en&biw=878&bih=598&tbm=isch&tbnid=17fWAXUGZ3USxM:&imgrefurl=http://www.maclife.com/article/howtos/sync_your_android_phone_your_mac?page=0,2&docid= FGf7ur67XeENhM&imgurl=http://www.maclife.com/files/u32/1201_videogallery_480.jpg&w=480&h=854&ei=M9FbUY_aNsrvswburIDABw&zoom=1&iact=hc&vpx=664&vpy=144&dur=1467&hovh=300&hovw=168&tx=123&ty=203&page=1&tbnh=135&tbnw=75&start= 0&ndsp=19&ved=1t:429,r:18,s:0,i:133

文件夹视图,所以当用户单击任何文件夹时,它的内容会显示在 gridview 中,我该怎么办?

这是我的代码。

公共类 AndroidCustomGalleryActivity 扩展 Activity {
    私人整数计数;
    私有 Bitmap[] 缩略图;
    私人布尔[]缩略图选择;
    私有字符串[] arrPath;
    私有图像适配器图像适配器;

Cursor imagecursor; int image_column_index; Button selectBtn; ProgressDialog myProgressDialog = null; DataBase db; Handler handle = new Handler(){ public void handleMessage(android.os.Message msg) { if (msg.what == 1) { hideProgress(); GridView imagegrid = (GridView) findViewById (R.id.PhoneImageGrid); imageAdapter = new ImageAdapter(); imagegrid.setAdapter(imageAdapter); } else if (msg.what == 3) { hideProgress(); AndroidCustomGalleryActivity.this.finish(); } else if (msg.what == 2) { hideProgress(); } super.handleMessage(msg); }; }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.gallery); showProgress(); new Thread() { public void run() { try { loadFeed(); android.os.Message alertMessage = new android.os.Message(); alertMessage.what = 1; handle.sendMessage(alertMessage); } catch(Exception e) { android.os.Message alertMessage = new android.os.Message(); alertMessage.what = 2; handle.sendMessage(alertMessage); } } }.start(); selectBtn = (Button) findViewById(R.id.selectBtn); selectBtn.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub showProgress(); new Thread() { public void run() { try { SelecedtPhotos(); android.os.Message alertMessage = new android.os.Message(); alertMessage.what = 3; handle.sendMessage(alertMessage); } catch(Exception e) { android.os.Message alertMessage = new android.os.Message(); alertMessage.what = 2; handle.sendMessage(alertMessage); } } }.start(); } }); } public static byte[] getBitmapAsByteArray(Bitmap bitmap) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.PNG, 0, outputStream); return outputStream.toByteArray(); } public class ImageAdapter extends BaseAdapter { private LayoutInflater mInflater; public ImageAdapter() { mInflater = (LayoutInflater) getSystemService (Context.LAYOUT_INFLATER_SERVICE); } public int getCount() { return count; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); convertView = mInflater.inflate(R.layout.galleryitem, null); holder.imageview = (ImageView) convertView.findViewById (R.id.thumbImage); holder.checkbox = (CheckBox) convertView.findViewById (R.id.itemCheckBox); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } holder.checkbox.setId(position); holder.imageview.setId(position); holder.checkbox.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub CheckBox cb = (CheckBox) v; int id = cb.getId(); if (thumbnailsselection[id]) { cb.setChecked(false); thumbnailsselection[id] = false; } else { cb.setChecked(true); thumbnailsselection[id] = true; } } }); /*holder.imageview.setOnClickListener(new OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub int id = v.getId(); Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.parse("file://" + arrPath[id]), "image/*"); startActivity(intent); } });*/ holder.imageview.setImageBitmap(thumbnails[position]); holder.checkbox.setChecked(thumbnailsselection[position]); holder.id = position; return convertView; } } class ViewHolder { ImageView imageview; CheckBox checkbox; int id; } public void loadFeed() { final String[] columns = { MediaStore.Images.Media.DATA, MediaStore.Images.Media._ID }; final String orderBy = MediaStore.Images.Media._ID; imagecursor = managedQuery (MediaStore.Images.Media.EXTERNAL_CONTENT_URI, columns, null,null, orderBy); image_column_index = imagecursor.getColumnIndex (MediaStore.Images.Media._ID); this.count = imagecursor.getCount(); this.thumbnails = new Bitmap[this.count]; this.arrPath = new String[this.count]; this.thumbnailsselection = new boolean[this.count]; for (int i = 0; i < this.count; i++) { imagecursor.moveToPosition(i); int id = imagecursor.getInt(image_column_index); int dataColumnIndex = imagecursor.getColumnIndex (MediaStore.Images.Media.DATA); thumbnails[i] = MediaStore.Images.Thumbnails.getThumbnail (getApplicationContext().getContentResolver(), id,MediaStore.Images.Thumbnails.MICRO_KIND, null); arrPath[i]= imagecursor.getString(dataColumnIndex); }
4

1 回答 1

0

您知道要在网格视图中显示的图像。所以最初使用四个图像设计自定义布局,例如具有四个图像视图的文件夹。然后加载您的特定文件夹图像缩略图。

希望这会帮助你。

于 2013-04-03T07:03:38.193 回答