简体   繁体   中英

General Question about Android Gallery Control

So, I've been doing xml layout for a project that involves getting a horizontal scrollable row of images on a screen, and did so using just a horizontalscrollview. and a bunch of imagebuttons. I used an include to put this on another xml layout page and another programmer will then populate the images dynamically.

My question is, how would the gallery control benefit us? I haven't done much Java programming and I've seen some instruction online of how to implement this control, but not a lot on WHY you would use this. It looks like this control works mainly via Java insertion via array, but other than that I can't tell what the benefits are from reading over my way of just creating the layout and having this other programmer insert his own images manually.

Another related question - do these images for a gallery need to me imageviews, or can they be imagemaps? Currently they are imagemaps because we want them to be clicable to go to a user's profile, etc.

Thanks!

Gallery is nearly perfect. In one of my projects I do have a LinearLayout with a Gallery in it:

<Gallery 
 android:id="@+id/gallery"
 android:layout_height="0dip"
 android:layout_weight="1"
 android:layout_width="fill_parent"
 android:spacing="2dip" />    

An activity implements OnItemClickListener:

public class MyActivity extends Activity implements OnItemClickListener {

A data structure contains all items and is send to an adapter:

private void processGallery() {
 adapter = new MyAdapter(this, containers, appName);
 if (adapter != null) {
  gallery.setAdapter(adapter);
 }
}

@Override
public void onItemClick(final AdapterView<?> adapterView, final View view, final int position, final long id) {
 if (containers != null) {
  container = containers.get(position);
  if (container != null) {
   // Handle selected image
  }
 }
}

The adapter is a usual BaseAdapter - nothing magic:

public class MyAdapter extends BaseAdapter {

    private ArrayList<Container> containers;
    private Context              context;

    public int getCount() {
        return containers.size();
    }

    public Object getItem(final int position) {
        return containers.get(position);
    }

    public long getItemId(final int position) {
        return position;
    }

    public View getView(final int position, final View contentView, final ViewGroup viewGroup) {
        ImageView imageView = new ImageView(context);
        Container container = containers.get(position);
        if (container != null) {
           // Do your image thing here
        }

        return imageView;
    }

    public MyAdapter(final Context context, final ArrayList<Container> containers, final String appName) {
        this.context = context;
        this.containers = containers;
    }
}

This simple code gives a horizontal scrolling image gallery with clickable items. The click is send to the activity - no need to do something fancy in the adapter. I removed from the code shown here a DrawableCache that I use because my items do come from the web.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM