Android學習筆記(7)—關於GridView的使用,添加圖片和標題

來源:互聯網
上載者:User

1、先來看下布局檔案

<?xml version="1.0" encoding="utf-8"?><GridView xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/gridview"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:columnWidth="170dp"    android:gravity="center"    android:horizontalSpacing="30dp"     android:numColumns="auto_fit"    android:paddingBottom="20dp"    android:paddingLeft="20dp"    android:paddingRight="20dp"    android:paddingTop="20dp"    android:stretchMode="columnWidth"    android:verticalSpacing="20dp" />

2、繼承一個BaseAdapter寫一個PictureAdapter

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);}}@Overridepublic int getCount() {// TODO Auto-generated method stubif (null != pictures) {return pictures.size();} else {return 0;}}@Overridepublic Object getItem(int position) {// TODO Auto-generated method stubSystem.out.println("--" + position);return pictures.get(position);}@Overridepublic long getItemId(int position) {// TODO Auto-generated method stubSystem.out.println("--1---" + position);return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubViewHolder 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() {this.imageId = imageId;}}

3、R.layout.picture_item布局檔案

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/root"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:layout_marginTop="5dp"    android:orientation="vertical" >    <ImageView        android:id="@+id/image"        android:layout_width="120dp"        android:layout_height="120dp"        android:layout_gravity="center"        android:padding="4dp"        android:scaleType="fitXY" />    <TextView        android:id="@+id/title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_gravity="center"        android:gravity="center_horizontal"         android:textColor="#ff501e58"        android:textSize="22dip"/></LinearLayout>

4、變數聲明

private String[] titles;private GridView gridView;private int[] images;

5、填充資料並調用

其中下面的執行是先為titles 與images數組賦值,這裡不再給出

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) {//點擊對應Item時的相應...}});

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.