1

My app is based on E-Commerce.I'm using gallery for images.I want to add text and button below each image in gallery that display when i click the respected image.The text is related to product that is different for each image and button is used for to move another activity.

The code is below.I'm new in android.Any help is much appreciated.

Code:

import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;

public class GalleryView extends Activity {
Integer[] pics = {
    R.drawable.antartica1,
    R.drawable.antartica2,
    R.drawable.antartica3,
    R.drawable.antartica4,
    R.drawable.antartica5,
    R.drawable.antartica6,
    R.drawable.antartica7,
    R.drawable.antartica8,
    R.drawable.antartica9,
    R.drawable.antartica10
   };
  ImageView imageView;

 /** Called when the activity is first created. */
 @Override
 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

Gallery ga = (Gallery)findViewById(R.id.Gallery01);
ga.setAdapter(new ImageAdapter(this));

imageView = (ImageView)findViewById(R.id.ImageView01);
ga.setOnItemClickListener(new OnItemClickListener() {

    public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
            long arg3) {
        Toast.makeText(getBaseContext(), 
                "You have selected picture " + (arg2+1) + " of Antartica", 
                Toast.LENGTH_SHORT).show();
        imageView.setImageResource(pics[arg2]);

    }

});

}


 public class ImageAdapter extends BaseAdapter {

private Context ctx;
int imageBackground;

public ImageAdapter(Context c) {
    ctx = c;
    TypedArray ta = obtainStyledAttributes(R.styleable.Gallery1);
    imageBackground = ta.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 1);
    ta.recycle();
}

public int getCount() {

    return pics.length;
}

public Object getItem(int arg0) {

    return arg0;
}

public long getItemId(int arg0) {

    return arg0;
}

public View getView(int arg0, View arg1, ViewGroup arg2) {
    ImageView iv = new ImageView(ctx);
    iv.setImageResource(pics[arg0]);
    iv.setScaleType(ImageView.ScaleType.FIT_XY);
    iv.setLayoutParams(new Gallery.LayoutParams(150,120));
    iv.setBackgroundResource(imageBackground);
    return iv;
}

}
 }
4

1 回答 1

2

modify your ImageAdapter class

LayoutInflater mInflater;

init it in ImageAdapter()

   mInflater=LayoutInflater.from(c);

now Modify getView()

public View getView(int arg0, View arg1, ViewGroup arg2) {
View v=mInflater.inflate(R.layout.your_layout, null);

ImageView iv = (ImageView)v.findViewById(R.id.imave_view);

TextView tv=(TextView)v.findViewById(R.id.tv);

tv.setTxt(//set your text); iv.setImageResource(pics[arg0]); iv.setScaleType(ImageView.ScaleType.FIT_XY); iv.setLayoutParams(new Gallery.LayoutParams(150,120)); iv.setBackgroundResource(imageBackground); return v; }

于 2012-10-15T11:59:22.510 回答