Android 격자 보기 GridView 사용
격자 보기 GridView 의 배열 방식 은 행렬 과 유사 합 니 다.화면 에 많은 요소(문자,그림 또는 다른 요소)가 행렬 형식 으로 표시 되 어야 할 때 GridView 컨트롤 을 사용 할 수 있 습 니 다.
GridView 에서 자주 사용 하 는 XML 속성:
본 고 는 GridView 컨트롤 을 어떻게 사용 하여 모 바 일 화면 에 있 는 각 애플 리 케 이 션 아이콘 의 배치 와 애플 리 케 이 션 이름 의 표 시 를 실현 하 는 지 구체 적 인 사례 로 설명 할 것 이다.
완 료 된 프로그램의 실행 효 과 는 그림 1 과 같다.
그림 1 메 인 화면 표시 효과
1.인터페이스 레이아웃
GridView 의 API 도움말 문서(http://developer.android.com/reference/android/widget/GridView.html)를 보면 GridView 의 일반적인 xml 속성 은 그림 2 와 같다.
그 중에서 android:columnWidth[int]는 각 열의 폭 을 설정 하 는 데 사 용 됩 니 다.android:gravity[int]는 모든 격자 의 비중 을 설정 하 는 데 사 용 됩 니 다.android:horizontal Spacing[int]격자 사이 의 기본 수평 거 리 를 설정 하 는 데 사용 합 니 다.android:numColumn[int]은 열 수 를 설정 하 는 데 사 용 됩 니 다.android:stretchMode[int]열 을 설정 할 때 사용 가능 한 공간 을 어떤 방식 으로 채 워 야 합 니까?android:vertical Spacing[int]격자 사이 줄 의 기본 수직 거 리 를 설정 하 는 데 사 용 됩 니 다.
상기 GridView 에서 자주 사용 하 는 xml 속성 을 알 게 된 후에 우 리 는 메 인 인터페이스의 xml 레이아웃 파일 을 작성 할 수 있 습 니 다.xml 레이아웃 파일 에서 저 희 는 LinearLayout 를 사용 하여 전체 화면 을 수직 으로 배치 한 다음 에 이 레이아웃 에 GridView 컨트롤 을 추가 하면 됩 니 다.구체 적 인 xml 레이아웃 파일 원본 코드 는 다음 과 같 습 니 다.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<GridView
android:id="@+id/gridView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:numColumns=""
android:horizontalSpacing="dp"
android:verticalSpacing="dp">
</GridView>
</LinearLayout>
GridView 컨트롤 에서 우 리 는 android:numColumns="4"를 통 해 격자 의 열 수 를 4 로 지정 합 니 다.android:horizontal Spacing="10dp"와 android:vertical Spacing="10dp"를 통 해 격자 사이 의 수평 거리 와 수직 거 리 를 모두 10dp 로 지정 합 니 다.2.격자 요소 레이아웃
그림 1 에서 보 듯 이 모든 격자 안에 우 리 는 두 가지 내용 을 표시 해 야 한다.응용 소프트웨어 아이콘 과 응용 소프트웨어 이름 이다.따라서 우 리 는 격자 안의 요소 에 대해 상응하는 구 조 를 해 야 한다.
프로젝트 프로젝트 의 layot 디 렉 터 리 에'griditeminfo.xml'이라는 xml 레이아웃 파일 을 새로 만 들 고 격자 내 요소 에 대한 레이아웃 을 완성 할 수 있 습 니 다.이 xml 레이아웃 파일 에서 저 희 는 상대 적 인 레이아웃 RelativeLayout 를 사용 하여 격자 안의 요 소 를 배열 하고 ImageView 컨트롤 을 격자 안에 수평 으로 가운데 로 놓 아 프로그램의 아이콘 을 표시 합 니 다.응용 프로그램의 이름 을 표시 하기 위해 TextView 컨트롤 을 수평 으로 가운데 로 놓 습 니 다.구체 적 인 griditeminfo.xml 소스 코드 는 다음 과 같 습 니 다.
<?xml version="." encoding="utf-"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<ImageView
android:id="@+id/itemImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
</ImageView>
<TextView
android:id="@+id/itemName"
android:layout_below="@+id/itemImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" >
</TextView>
</RelativeLayout>
3.자원 저장이 인 스 턴 스 에서 우 리 는 많은 응용 프로그램 아이콘 과 응용 프로그램 이름 을 저장 해 야 한다.분명히 응용 프로그램 아이콘 과 응용 프로그램 이름 사이 에 일일이 대응 하 는 관계 가 존재 한다.우 리 는 HashMap 을 사용 하여 응용 프로그램 아이콘 과 응용 프로그램 이름 을 각각 저장 한 다음 에 HashMap 을 Array List 에 추가 하면 자원 의 저장 을 완성 할 수 있다.구체 적 인 실현 방법 은 다음 과 같다.
// ArrayList
//Author: -
ArrayList<HashMap<String, Object>> item = new ArrayList<HashMap<String, Object>>();
for (int i = ; i < resIds.length; i++) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("itemImage", resIds[i]);
map.put("itemName", name[i]);
item.add(map);
}
그 중에서 배열 resIds[]는 응용 소프트웨어 아이콘 의 자원 id 를 저장 하고 있다.배열 name[]은 응용 프로그램 이름 을 저장 하고 for 순환 을 통 해 HashMap 에 저장 합 니 다.4.심 플 어댑터 심 플 어댑터
간단 한 어댑터 SimpleAdapter 는 BaseAdapter 에서 계승 하여 정적 데 이 터 를 xml 파일 에 정의 한 보기 에 표시 합 니 다.예 를 들 어 정적 데 이 터 를 맵 으로 구 성 된 Array List 를 지정 할 수 있 습 니 다.Array List 의 각 항목 은 List 의 한 줄 에 대응 하고 Map 은 여러 가지 데 이 터 를 포함 할 수 있 습 니 다.
Simple Adapter 의 구조 방법 은 다음 과 같 습 니 다.
public SimpleAdapter (Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to);
그 중에서 매개 변수 context 는 SimpleAdapter 와 연 결 된 컨 텍스트 대상 을 지정 하 는 데 사 용 됩 니 다.매개 변수 data 는 맵 목록 을 지정 하 는 데 사 용 됩 니 다.매개 변수 resource 는 자원 식별 자(즉 목록 항목 의 보기 레이아웃)를 지정 하 는 데 사 용 됩 니 다.파라미터 from 은 맵 목록 의 모든 데이터 에 대응 하 는 탭 을 지정 하 는 데 사 용 됩 니 다.인자 to 는 맵 목록 의 모든 데이터 가 레이아웃 파일 에 일치 하 는 대상 을 지정 하 는 데 사 용 됩 니 다.이 실례 에서 Simple Adapter 를 실현 하 는 구조 방법 은 다음 과 같다.
//SimpleAdapter , ArrayList
//Author :
SimpleAdapter simpleAdapter = new SimpleAdapter
(this, item, R.layout.griditeminfo, new String[] {"itemImage","itemName"},
new int[] {R.id.itemImage,R.id.itemName}) {
};
간단 한 어댑터 Simple Adapter 를 실현 한 후에 우 리 는 이 간단 한 어댑터 Simple Adapter 를 GridView 대상 에 추가 해 야 합 니 다.다음 과 같은 방법 으로 실현 할 수 있 습 니 다.
mGridView.setAdapter(simpleAdapter);
5.사건 감청실제 응용 프로그램 에서 우 리 는 사용자 의 조작 을 감청 해 야 한다.즉,사용자 가 어떤 응용 프로그램 을 선 택 했 는 지 알 아야 한다.
격자 컨트롤 GridView 에서 자주 사용 하 는 이벤트 모니터 는 두 가지 가 있 습 니 다.Onitem Selected Listener 와 Onitem ClickListener 입 니 다.그 중에서 Onitem Selected Listener 는 프로젝트 선택 이벤트 감청 에 사용 되 고 Onitem ClickListener 는 프로젝트 클릭 이벤트 감청 에 사 용 됩 니 다.
이 두 사건 의 감청 을 실현 하려 면 간단 하 다.Onitem Selected Listener 와 Onitem ClickListener 인 터 페 이 스 를 계승 하고 추상 적 인 방법 을 실현 하면 된다.그 중에서 실현 해 야 할 OnItemClickListener 인터페이스의 추상 적 인 방법 은 다음 과 같다.
public void onItemClick(AdapterView<?> parent, View view, int position, long id);
실현 해 야 할 Onitem Selected Listener 인터페이스의 추상 적 인 방법 은 두 가지 가 있 는데 각각 다음 과 같다.
public void onItemSelected(AdapterView<?> parent, View view, int position, long id);
public void onNothingSelected(AdapterView<?> parent);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.