я разрабатываю приложение, в котором gridview отображают изображения из Интернета ... теперь я хочу передать все изображения в галерею при событии click gridview ..
Я хочу, чтобы моя галерея не загружала все изображения, когдаактивность галереи называется .. так что я хочу передать все изображения из вида сетки в активность галереи ...
есть ли какое-либо решение для передачи всех изображений gridview о следующей активности,?
Изображения моего gridview получены из Интернета, и я не храню все изображения локально ... просто отображаю их в виде сетки.
вот мой код ..
mainfile.java
public class PhotoList extends Activity
{
Bundle bundle;
String key;
int totalPhoto;
ImageView imageArray[];
HashMap<String,ArrayList<ChildPhotos>> childPhotosWithId;
ArrayList<ChildPhotos> childPhotoList;
String allURL[];
String title,discription;
TextView PhotosTitle,PhotosDiscription;
public static Bitmap[] downloadedChildPhotos;
public static int downloadedChildPhotosIndex=0;
ImageView img[];
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.photo_list);
GridView gridview = (GridView) findViewById(R.id.gridview);
bundle=getIntent().getExtras();
key=bundle.getString("key");
totalPhoto=Integer.parseInt(key);
img=new ImageView[totalPhoto];
title=bundle.getString("title");
discription=bundle.getString("discription");
childPhotosWithId=PhotosXMLHanler.getChildPhotoWithId();
childPhotoList=childPhotosWithId.get(key);
ChildPhotos c[]=new ChildPhotos[childPhotoList.size()];
allURL=new String[childPhotoList.size()];
downloadedChildPhotos=new Bitmap[childPhotoList.size()];
PhotosTitle=(TextView)findViewById(R.id.photosTitleInGridView);
PhotosDiscription=(TextView)findViewById(R.id.photoDiscriptionInGridView);
PhotosTitle.setText(title);
PhotosDiscription.setText(discription);
for(int i=0;i<childPhotoList.size();i++)
{
c[i]=new ChildPhotos();
c[i]=childPhotoList.get(i);
String url=c[i].getChildPhoto();
allURL[i]=url;
System.out.println("url "+(i+1)+c[i].getChildPhoto());
}
gridview.setAdapter(new ImageAdapter(this,allURL));
gridview.setOnItemClickListener(new OnItemClickListener()
{
public void onItemClick(AdapterView<?> parent, View v, int position, long id)
{
Toast.makeText(PhotoList.this, "" +id, Toast.LENGTH_SHORT).show();
GridView g=(GridView)v.findViewById(R.id.gridview);
for(int i=0;i<totalPhoto;i++)
{
img[i]=new ImageView(PhotoList.this);
System.out.println("image ==>"+img[i].getId());
}
/*
here i want to fetch all images from grid view...
*/
// Intent intent=new Intent(PhotoList.this,GalleryView.class);
//
// startActivityForResult(intent, 0);
}
});
}
class ImageAdapter extends BaseAdapter
{
private Context mContext;
String[] allURL;
ImageLoader imageLoader;
public ImageAdapter(Context c,String[] allURL)
{
mContext = c;
this.allURL=allURL;
imageLoader = new ImageLoader(mContext);
}
public int getCount()
{
return allURL.length;
}
public Object getItem(int position)
{
return null;
}
public long getItemId(int position)
{
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null)
{
// if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
}
else
{
imageView = (ImageView) convertView;
}
imageView.setTag(allURL[position]);
imageLoader.DisplayImage(allURL[position],PhotoList.this,imageView);
///here i use thread which set image in backgrund...as images come from internet..
return imageView;
}
}
}