Android GridView樣本(二)

來源:互聯網
上載者:User

mainActivity如下:

package cn.c;import java.util.ArrayList;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.GridView;import android.widget.ImageView;/** * 需求描述: * 自訂GridView的Adapter展示圖片 *  * 注意:去掉GridView點擊時的背景色 * android:listSelector="@android:color/transparent" */public class MainActivity extends Activity {    private GridView mGridView;    private ArrayList<RowImages> mArrayList;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        init();    }   private void init(){   mGridView=(GridView) findViewById(R.id.gridView);   mArrayList=new ArrayList<RowImages>();   for (int i = 0; i < 10; i++) {    RowImages images=new RowImages(R.drawable.a, R.drawable.b, R.drawable.a);    mArrayList.add(images);    }   GridViewAdapter adapter=new GridViewAdapter(MainActivity.this, mArrayList);   mGridView.setAdapter(adapter);   mGridView.setOnItemClickListener(new ItemClickListenerImpl());    }   private class ItemClickListenerImpl implements OnItemClickListener{public void onItemClick(AdapterView<?> parent, View view, int position,long id) {System.out.println("點擊了第"+(position+1)+"行");ImageView imageView_left=(ImageView) view.findViewById(R.id.imageView_left);imageView_left.setOnClickListener(new OnClickListener() {public void onClick(View v) {               System.out.println("xxxxxx 點擊了左邊的圖片");}});ImageView imageView_center=(ImageView) view.findViewById(R.id.imageView_center);imageView_center.setOnClickListener(new OnClickListener() {public void onClick(View v) {               System.out.println("xxxxxx 點擊了中間的圖片");}});ImageView imageView_right=(ImageView) view.findViewById(R.id.imageView_right);imageView_right.setOnClickListener(new OnClickListener() {public void onClick(View v) {               System.out.println("xxxxxx 點擊了右邊的圖片");}});}      }}

GridViewAdapter如下:

package cn.c;import java.util.ArrayList;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;public class GridViewAdapter extends BaseAdapter{    private Context mContext;    private ArrayList<RowImages> mArrayList;   public GridViewAdapter(Context context,ArrayList<RowImages> arrayList){this.mContext=context;this.mArrayList=arrayList;}public int getCount() {if (mArrayList==null) {return 0;} else {return mArrayList.size();}}public Object getItem(int position) {if (mArrayList==null) {return null;} else {            return mArrayList.get(position);}}public long getItemId(int position) {return position;}public View getView(int position, View convertView, ViewGroup parent) {ViewHolder holder=null;if (convertView==null) {holder=new ViewHolder();convertView=LayoutInflater.from(mContext).inflate(R.layout.gridview_row_layout, null,false);holder.imageView_left=(ImageView) convertView.findViewById(R.id.imageView_left);holder.imageView_center=(ImageView) convertView.findViewById(R.id.imageView_center);holder.imageView_right=(ImageView) convertView.findViewById(R.id.imageView_right);convertView.setTag(holder); } else {           holder=(ViewHolder) convertView.getTag(); }if (mArrayList!=null) {RowImages images=this.mArrayList.get(position);if (holder.imageView_left!=null) {holder.imageView_left.setImageResource(images.getImg_left());}if (holder.imageView_center!=null) {holder.imageView_center.setImageResource(images.getImg_center());}if (holder.imageView_right!=null) {holder.imageView_right.setImageResource(images.getImg_right());}}return convertView;}private class ViewHolder{ImageView imageView_left;ImageView imageView_center;ImageView imageView_right;}}

RowImages如下:

package cn.c;public class RowImages {private int img_left;private int img_center;private int img_right;public RowImages() {super();}public RowImages(int img_left, int img_center, int img_right) {super();this.img_left = img_left;this.img_center = img_center;this.img_right = img_right;}public int getImg_left() {return img_left;}public void setImg_left(int img_left) {this.img_left = img_left;}public int getImg_center() {return img_center;}public void setImg_center(int img_center) {this.img_center = img_center;}public int getImg_right() {return img_right;}public void setImg_right(int img_right) {this.img_right = img_right;}}

main.xml如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >   <GridView       android:id="@+id/gridView"       android:layout_width="fill_parent"       android:layout_height="fill_parent"       android:verticalSpacing="10dip"       android:listSelector="@android:color/transparent"    /></RelativeLayout>

gridview_row_layout.xml如下:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="wrap_content" >    <ImageView        android:id="@+id/imageView_left"         android:layout_width="80dip"        android:layout_height="80dip"        android:src="@drawable/ic_launcher"        android:layout_alignParentLeft="true"    />    <ImageView        android:id="@+id/imageView_center"         android:layout_width="80dip"        android:layout_height="80dip"        android:src="@drawable/ic_launcher"        android:layout_centerHorizontal="true"    />    <ImageView        android:id="@+id/imageView_right"         android:layout_width="80dip"        android:layout_height="80dip"        android:src="@drawable/ic_launcher"        android:layout_alignParentRight="true"    />    </RelativeLayout>

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.