0

我在我的项目中使用照片库,我可以用我的适配器将图像膨胀到画廊中。如果我想在图像底部添加文本(2-3 个单词作为图像名称)我应该怎么做?有任何参考吗?

非常感谢。

4

2 回答 2

1

getView从适配器的方法创建并返回一个自定义视图对象。ImageView您可以对包含一个和一个TextView内部LinearLayout具有垂直方向的 XML 进行膨胀。

于 2012-04-25T12:53:56.203 回答
0

首先:创建具有 textview 和 imageview 的 gallery_items 布局,

然后你必须使用 ViewHolder 类在 getView 方法中膨胀布局,

如下 :

 public class GalleryPhotoWithText extends Activity {
  private  Gallery galleryView; 
    /** Called when the activity is first created. */
    @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

      galleryView = (Gallery)findViewById(R.id.galleryid);

       galleryView.setAdapter(new ImageAdapter(this));         
           }


 public class ImageAdapter extends BaseAdapter { 
  private Activity activity;  
  private  LayoutInflater inflater=null; 
  public ImageAdapter(Activity a) {   
      activity = a;  
           inflater = (LayoutInflater)activity.getSystemService
                   (Context.LAYOUT_INFLATER_SERVICE);          } 

 public int getCount() {   
    return data.length;         }  

public Object getItem(int position) {   
    return position;         }   

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

public  class ViewHolder{   
    public TextView text;    
    public ImageView image;         }   

public View getView(int position, View convertView, ViewGroup parent) {   
    View vi=convertView;   
    ViewHolder holder;   
    if(convertView==null){  
        vi = inflater.inflate(R.layout.gallery_items, null); 
        holder=new ViewHolder();  
        holder.text=(TextView)vi.findViewById(R.id.textView1);  
        holder.image=(ImageView)vi.findViewById(R.id.image);   
        vi.setTag(holder);             }  

        else    

    holder=(ViewHolder)vi.getTag();  
    holder.text.setText(name[position]); 
    final int stub_id=data[position];  
    holder.image.setImageResource(stub_id);  
    return vi;         } 

    private int[] data = {  
        R.drawable.image1, R.drawable.image2,  
        R.drawable.image3, R.drawable.image4,  


                        };  
    private String[] name = {  
        "first pic name", "second pic name",  
        "third pic name", "fourth pic name",  



        };     } }

希望这有帮助

于 2012-04-25T13:03:06.180 回答