What:How: GridView 기능을 구현하는 핵심 프레임워크

(본고는 홈페이지에서 제공한 실례로 설명하고자 한다. 이 실례는 내가 올린 자원을 통해android 개발 홈페이지를 방문하여 얻을 수 있으며 구체적인 링크는 본고의 마지막 부분을 참조한다)
이 기능의 핵심 또는 주요 기능 구현:
사용자 정의 어댑터 (adapter) 를 설정합니다. 아래에 이 문제에 대한 전개가 있습니다.
이 기능의 핵심 구성:
    1.res/layout에서 상응하는 xml 파일에서 GridView 보기를 설명합니다. 이 파일은 GridView의 각종 매개 변수를 사용자 정의할 수 있습니다.eg
   
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <GridView
    android:id="@+id/gridview"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"
    android:columnWidth="90dp"
    android:numColumns="auto_fit"
    android:verticalSpacing="10dp"
    android:horizontalSpacing="10dp"
    android:stretchMode="columnWidth"
    android:gravity="center"/>
</LinearLayout>

    2.res/drawable에 자신의 그림 자원을 추가합니다,eg
(그중sample 0~sample 7은 우리가 가령, 물론 수량과 명칭에 상응하는 변경을 할 수 있다)
    3.자신의 GridView를 위한 맞춤형 어댑터
// GridView        
    public class ImageAdapter extends BaseAdapter {
        private Context mContext;

        public ImageAdapter(Context c) {
            mContext = c;
        }

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

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

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

        // create a new ImageView for each item referenced by the Adapter
        public View getView(int position, View convertView, ViewGroup parent) {
            ImageView imageView;
            if (convertView == null) {  // if it's not recycled, initialize some attributes
                imageView = new ImageView(mContext);
                imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
                imageView.setAdjustViewBounds(false);
                imageView.setScaleType(ImageView.ScaleType.CENTER);
                imageView.setPadding(8, 8, 8, 8);
            } else {
                imageView = (ImageView) convertView;
            }

            imageView.setImageResource(mThumbIds[position]);
            return imageView;
        }

        // references to our images
        private Integer[] mThumbIds = {
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7,
                R.drawable.sample_0, R.drawable.sample_1,
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7,
                R.drawable.sample_0, R.drawable.sample_1,
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7,
                R.drawable.sample_0, R.drawable.sample_1,
                R.drawable.sample_2, R.drawable.sample_3,
                R.drawable.sample_4, R.drawable.sample_5,
                R.drawable.sample_6, R.drawable.sample_7
        };
    }

    4.activity에서 상응하는 논리 기능(GridView 실례화, 감청기 설정 등)을 실현하고eg
import android.widget.GridView;
import android.widget.AdapterView.OnItemClickListener;
...
GridView gridview = (GridView) findViewById(R.id.gridview);
        gridview.setNumColumns(3);
        gridview.setAdapter(new ImageAdapter(this));

        gridview.setOnItemClickListener(new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, View v, int position, long id) {
                Toast.makeText(Ch04_GridViewActivity.this, "" + position, Toast.LENGTH_SHORT).show();
            }
        });

이 문서에 해당하는 리소스:
    1.GridView 공식 자습서
    2.본문 대응 실례 소스 코드

좋은 웹페이지 즐겨찾기