龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 移动开发 > Android开发 >

Android开发学习笔记 Gallery和GridView浅析(5)

时间:2014-11-02 03:33来源:网络整理 作者:网络 点击:
分享到:
main.xml xml version="1.0" encoding="utf-8" LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_hei

main.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:orientation="vertical" 
  android:layout_width="fill_parent" 
  android:layout_height="fill_parent" 
  > 
  <GridView  
    android:id="@+id/GridView1"  
    android:layout_width="wrap_content"  
    android:layout_height="wrap_content" 
    android:columnWidth="90dp" 
    android:numColumns="3" 
    android:verticalSpacing="10dp" 
    android:horizontalSpacing="10dp" 
    android:stretchMode="columnWidth" 
    android:gravity="center"     
    /> 
</LinearLayout>

效果图:

第二个例子:
MainActivity.java

package com.android.gridview2.activity; 
 
import java.util.ArrayList; 
import java.util.HashMap; 
import java.util.List; 
import java.util.Map; 
import android.app.Activity; 
import android.os.Bundle; 
import android.widget.GridView; 
import android.widget.SimpleAdapter; 
 
public class MainActivity extends Activity { 
 
    private GridView gv; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.gridview); 
 
     //准备要添加的数据条目 
     List<Map<String, Object>> items = new ArrayList<Map<String,Object>>(); 
     for (int i = 0; i < 9; i++) { 
      Map<String, Object> item = new HashMap<String, Object>(); 
      item.put("imageItem", R.drawable.icon);//添加图像资源的ID  
      item.put("textItem", "icon" + i);//按序号添加ItemText  
      items.add(item); 
     } 
 
     //实例化一个适配器 
     SimpleAdapter adapter = new SimpleAdapter(this,  
                           items,  
                           R.layout.grid_item,  
                           new String[]{"imageItem", "textItem"},  
                           new int[]{R.id.image_item, R.id.text_item}); 
 
     //获得GridView实例 
     gv = (GridView)findViewById(R.id.mygridview); 
     //为GridView设置适配器 
     gv.setAdapter(adapter); 
 
    } 
} 

gridview.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  > 
  <GridView  
   android:id="@+id/mygridview" 
   android:numColumns="3" 
   android:gravity="center_horizontal" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:stretchMode="columnWidth" 
   /> 
</LinearLayout> 

grid_item.xml

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
  android:id="@+id/RelativeLayout1" 
  android:layout_width="wrap_content"  
  android:layout_height="fill_parent" 
  android:paddingBottom="6dip" 
  > 
  <ImageView  
   android:id="@+id/image_item" 
   android:layout_width="wrap_content" 
   android:layout_height="wrap_content" 
   android:layout_centerHorizontal="true" 
   /> 
  <TextView  
   android:id="@+id/text_item" 
   android:layout_below="@+id/image_item" 
   android:layout_height="wrap_content" 
   android:layout_width="wrap_content" 
   android:layout_centerHorizontal="true"   
   /> 
</RelativeLayout> 

效果图:

第三个例子:
MainActivity.java

package com.android.gridview3; 
 
import java.util.ArrayList; 
import java.util.List; 
import android.app.Activity; 
import android.content.Context; 
import android.os.Bundle; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.BaseAdapter; 
import android.widget.GridView; 
import android.widget.ImageView; 
import android.widget.TextView; 
import android.widget.Toast; 
import android.widget.AdapterView.OnItemClickListener; 
 
public class MainActivity extends Activity 
{ 
  private GridView gridView; 
  //图片的文字标题 
  private String[] titles = new String[] 
  { "pic1", "pic2", "pic3", "pic4", "pic5", "pic6", "pic7", "pic8", "pic9"}; 
  //图片ID数组 
  private int[] images = new int[]{     
      R.drawable.pic1, R.drawable.pic2, R.drawable.pic3,  
      R.drawable.pic4, R.drawable.pic5, R.drawable.pic6,  
      R.drawable.pic7, R.drawable.pic8,R.drawable.pic9  
  }; 
 
  @Override 
  public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    gridView = (GridView) findViewById(R.id.gridview); 
    PictureAdapter adapter = new PictureAdapter(titles, images, this); 
    gridView.setAdapter(adapter); 
 
    gridView.setOnItemClickListener(new OnItemClickListener() 
      { 
        public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
        { 
          Toast.makeText(MainActivity.this, "pic" + (position+1), Toast.LENGTH_SHORT).show(); 
        } 
      }); 
  } 
} 
//自定义适配器 
class PictureAdapter extends BaseAdapter{ 
  private LayoutInflater inflater; 
  private List<Picture> pictures; 
 
  public PictureAdapter(String[] titles, int[] images, Context context) 
  { 
    super(); 
    pictures = new ArrayList<Picture>(); 
    inflater = LayoutInflater.from(context); 
    for (int i = 0; i < images.length; i++) 
    { 
      Picture picture = new Picture(titles[i], images[i]); 
      pictures.add(picture); 
    } 
  } 
 
  @Override 
  public int getCount() 
  { 
    if (null != pictures) 
    { 
      return pictures.size(); 
    } else 
    { 
      return 0; 
    } 
  } 
 
  @Override 
  public Object getItem(int position) 
  { 
    return pictures.get(position); 
  } 
 
  @Override 
  public long getItemId(int position) 
  { 
    return position; 
  } 
 
  @Override 
  public View getView(int position, View convertView, ViewGroup parent) 
  { 
    ViewHolder viewHolder; 
    if (convertView == null) 
    { 
      convertView = inflater.inflate(R.layout.picture_item, null); 
      viewHolder = new ViewHolder(); 
      viewHolder.title = (TextView) convertView.findViewById(R.id.title); 
      viewHolder.image = (ImageView) convertView.findViewById(R.id.image); 
      convertView.setTag(viewHolder); 
    } else 
    { 
      viewHolder = (ViewHolder) convertView.getTag(); 
    } 
    viewHolder.title.setText(pictures.get(position).getTitle()); 
    viewHolder.image.setImageResource(pictures.get(position).getImageId()); 
    return convertView; 
  } 
 
} 
 
class ViewHolder 
{ 
  public TextView title; 
  public ImageView image; 
} 
 
class Picture 
{ 
  private String title; 
  private int imageId; 
 
  public Picture() 
  { 
    super(); 
  } 
 
  public Picture(String title, int imageId) 
  { 
    super(); 
    this.title = title; 
    this.imageId = imageId; 
  } 
 
  public String getTitle() 
  { 
    return title; 
  } 
 
  public void setTitle(String title) 
  { 
    this.title = title; 
  } 
 
  public int getImageId() 
  { 
    return imageId; 
  } 
 
  public void setImageId(int imageId) 
  { 
    this.imageId = imageId; 
  } 
} 
精彩图集

赞助商链接