GridViewコントロールとGalleryコントロール

8631 ワード

GridViewコントロール(一)概要    GridViewコントロールはグリッドリストと呼ばれ、androidでは使用頻度が高く、複数行の複数列で情報を表示でき、表現力が強い.(二)共通属性属性名           Javaのメソッド        さぎょう
columnWidth       setColumnWidth(int)         
gravity           setGravity(int)          
horizontalSpacing 
           setHorizontalSpacing(int)
                                
numColumns       setNumColumns(int)        
stretchMode       setStrechMode(int)          
verticalSpacing       setVerticalSpacing(int)            

 ここで、
stretchMode          
NO_STRETCH           
STRETCH_SPACING                  
STRETCH_SPACING_UNIFORM       、           
STRETCH_COLUMN_WIDTH             

 
 
 
Galleryコントロール(一)概要    Gallery(ギャラリー)コントロールはSpinnerクラスに似ており,いずれもAbsSpinnerクラスのサブクラスである.これらの違いは、Spinnerが垂直リスト選択ボックスを表示し、Galleryが水平リスト選択ボックスを表示し、Galleryがリストボックスを水平にドラッグできるようにすることです.    ListViewは垂直リストであり、Galleryは水平リストと理解できる.(二)共通属性
XML                                                      
Gravity                   setGravity(int)                         
spacing                  setSpacting(int)                           
unselectedAlpha      setUnselectedAlpha(float)                  

 (3)重要なインタフェース、方法1、OnItemClickListenerインタフェース:リスニングリスト項目クリックイベント.このインタフェースは、1)void onItemClick(AdapterViewparent,View,int position,long id)の方法を定義しています.    ≪アクション|Actions|emdw≫:ユーザーがリスト・アイテムをクリックしたイベントに応答します.パラメータの説明:1番目のパラメータ-parent:現在のGalleryオブジェクト2番目のパラメータ-view:クリックされたリスト項目3番目のパラメータ-position:クリックされたリスト項目のアダプタ内の位置(インデックス値)4番目のパラメータ-id:クリックされたリスト項目のリスト内の列のインデックス値.2)void setOnItemClickListener(OnItemClickListener listener)    役割:ユーザーのクリックイベントに応答するメソッドパラメータの説明を設定します:Listener:OnItemClickListenerインタフェースを実装したオブジェクト.例:
package com.jxust.day_05_01_listviewdemo;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	Gallery mGallery;
	List<GeneralBean> mGenerals; //           
	GeneralAdapter mAdapter;
	int[] resid = { R.drawable.baiqi, R.drawable.caocao, R.drawable.chengjisihan,
			R.drawable.hanxin, R.drawable.lishimin, R.drawable.nuerhachi, R.drawable.sunbin,
			R.drawable.sunwu, R.drawable.yuefei, R.drawable.zhuyuanzhang };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		initData(); //      
		initView();
		setListener();		//     
	}

	private void setListener() {
		setOnItemClickListener();
		setOnItemLongClickListener();
	}

	//     
	private void setOnItemLongClickListener() {
		mGallery.setOnItemLongClickListener(new OnItemLongClickListener() {

			@Override
			public boolean onItemLongClick(AdapterView<?> parent, View view, int position,
						long id) {
				Toast.makeText(MainActivity.this, mGenerals.get(position).getName()+"   ", 2000).show();
				//false               ,       ,               
				//true                
				return true;	
			}
		});
	}

	//     
	private void setOnItemClickListener() {
		mGallery.setOnItemClickListener(new OnItemClickListener() {

			@Override
			public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
				Toast.makeText(MainActivity.this, mGenerals.get(position).getName()+"   ", 2000).show();
			}
		});
	}

	private void initView() {
		mGallery = (Gallery) findViewById(R.id.galleryGeneral);
		mAdapter = new GeneralAdapter(); //      
		//  ListView     
		mGallery.setAdapter(mAdapter);
	}

	private void initData() {
		//              Java  
		String[] names = getResources().getStringArray(R.array.generals);
		mGenerals = new ArrayList<GeneralBean>();
		for (int i = 0; i < names.length; i++) {
			GeneralBean bean = new GeneralBean(resid[i], names[i]);
			mGenerals.add(bean);
		}

	}

	//             
	class GeneralAdapter extends BaseAdapter {

		@Override
		public int getCount() {
//			return mGenerals.size();
			return Integer.MAX_VALUE;
		}

		@Override
		public Object getItem(int position) {
			return mGenerals.get(position);
		}

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

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			//    ListView          View      
			View layout = View.inflate(MainActivity.this, R.layout.item_generals, null); // root       
			//            ImageView
			// layout            layout.item_generals
			ImageView ivThumb = (ImageView) layout.findViewById(R.id.ivThumb);
			//            TextView
			TextView tvName = (TextView) layout.findViewById(R.id.tvName);
			//           position       
			GeneralBean bean = (GeneralBean) getItem(position%mGenerals.size());
			//        
			ivThumb.setImageResource(bean.getResid());
			//         
			tvName.setText(bean.getName());

			return layout;
		}

	}
}

 
 
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/ivThumb"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:scaleType="fitXY"
        android:src="@drawable/baiqi" />

    <TextView
        android:id="@+id/tvName"
        android:layout_width="80dp"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="  "
        android:textSize="20sp" />

</LinearLayout>

 
<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="app_name">Day_05_01_ListViewDemo</string>
    <string name="hello_world">Hello world!</string>
    <string name="action_settings">Settings</string>
	<string-array name="generals">
	    <item >  </item>
	    <item >  </item>
	    <item >    </item>
	    <item >  </item>
	    <item >   </item>
	    <item >    </item>
	    <item >  </item>
	    <item >  </item>
	    <item >  </item>
	    <item >   </item>
	</string-array>
    
</resources>

 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <Gallery
        android:id="@+id/galleryGeneral"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:spacing="2dp" />

</RelativeLayout>