2011-05-02 3 views
1

저는 메모리 게임을 만들려고합니다. 필자는 GridView에 대한 Android 자습서를 살펴 봤지만 작동하는 동안 이해하고 사용자 정의하기가 다소 어려웠습니다. 나는 내가 작업하고있는 메모리 게임에 어떤 레이아웃을 사용해야하는지에 대한 조언과 의견을 묻고 싶다. 사진의 단순한 "눈금"이 될 것이며 사람들은 일치하는 쌍을 찾으려고 할 것입니다.메모리 게임을위한 GridView 대 기타 레이아웃 | Android

사용하기 좋은 레이아웃과 그 레이아웃의 장단점을 알려주십시오. Gridview, LinearLayout, TableLayout 등과 같은 레이아웃.

내 메모리 게임을 위해 간단하고 쉽게 레이아웃 할 수있는 레이아웃이 있습니까? 나는 프로그래밍에 익숙하지 않은 사람으로서 묻고있다. Java를 사용하여 Stanford에서 제공하는 프로그래밍 비디오 강좌 시리즈를 보았으므로 Java의 기초는 이해하지만 고급 것은 아닙니다.

자세한 내용은 궁금한 점을 알고 싶습니다. 처음에는 XML이 아닌 java에서 GridView를 만들려고했습니다. 그러나 어떤 이유로 GridView가 에뮬레이터에 표시되지 않습니다. 그것은 단지 빈 화면이었습니다. 나는 그것이 레이아웃이 MATCH_PARENT로 설정되지 않았기 때문에 그것이라고 생각한다. 하지만 자바에서 어떻게 해야할지 모르겠다. 인터넷 검색을 시도했지만 답변을 찾을 수 없습니다. 나는 결국 XML을 통해 그것을 해결하려고 결심했다. 누구든지 자바를 통해이를 수행하는 방법을 알고 있다면 대단히 감사하겠습니다.

GridView 튜토리얼의 ImageAdapter 클래스를 이해하는 데 어려움이 있습니다. (http://developer.android.com/resources/tutorials/views/hello-gridview.html). 특히 getView() 함수가 호출되는 방법이나 시점을 이해하지 못합니다. 튜토리얼에서는 설명하지 않습니다.

나는 그것을 잘 작동시키지 못했지만, 나는 그것을 아주 잘 이해하지 못하기 때문에 내 기억 게임을 위해 그것을 얼마나 커스터마이징 할 수 있을지 확신 할 수 없다.

긴 게시물은 유감스럽게 생각합니다. 내 질문은 주로 내 메모리 게임에 사용해야하는 레이아웃에 관한 것입니다. 에뮬레이터에 표시되는 Java에서 GridView를 만드는 것에 대한 질문에 대답 할 수 있다면 좋을 것입니다.

감사합니다.

+0

GridView를 사용해 보았지만 어렵습니다. 나는 초상화와 풍경 모드 모두에 꽤 보이게 할 수 없습니다. 디스플레이 모드에 따라 변경하는 방법을 모르겠습니다. 아는 사람 있나요? XML에서 TableLayout을 사용하고 Java를 사용하여 TableRow를 동적으로 추가하려고 노력할 것입니다. 다음은 그 방법을 찾은 튜토리얼 링크입니다 : [Dynamic Rows Tutorial] (http://en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayout) –

+0

XML에서 TableLayout을 사용하고 Java를 사용하여 TableRows 및 ImageViews를 동적으로 추가하는 방법은 다음과 같습니다. 성공했습니다. 자바와 안드로이드에 대한 제 이해가 GridView를 사용하기에는 충분하지 않기 때문에 그럴 것이라고 생각합니다. 특히, 사용자 정의하는 방법을 모르는 GridView의 ImageAdapter/BaseAdapter 부분입니다. 하지만 동적 인 TableRow 및 ImageView 설정을 아주 잘 사용자 정의 할 수있었습니다.게임의 레이아웃을 구현하는 방법에 유연성을 제공합니다. –

+0

업데이트 : ImageView의 "onClick"메서드 (또는 호출되는 모든 요소)에 레이아웃의 위치에 대한 매개 변수가 없습니다. 결국 돌아가서 GridView를 사용해야했습니다. GridView의 "onClick"메서드는 해당 위치에 대한 매개 변수를 전달합니다. –

답변

0

BaseAdapter을 확장하기위한 간단한 지침서를 작성했습니다. 바로 당신이하고자하는 일입니다.

레이아웃을 XML로 정의하십시오. GridView를 사용하십시오. 그런 다음 그리드에 표시되는 내용을 제어하는 ​​사용자 정의 어댑터를 작성하십시오. 그것은 마음에 ListView에 있지만 같은 방법으로 쓰여

http://androidcookbook.com/Recipe.seam?recipeId=588

은의 GridView 구현됩니다. 그것이 너무 진보 한 경우 작은 응용 프로그램으로 시작하고 낮은 수준에서 이해를 구축해야합니다.

+0

고마워, LeffelMania. 귀하의 링크를 설명 getView() 나를 위해. 나는 그것이 자동적으로 그리고 무대 뒤에서 작동한다고 생각하니? 나는 당신이 쓴 코드를 이해한다고 생각합니다. 당신이 제공 한 설명이 도움이되었습니다. GridView를 추천했다. 내 메모리 게임을위한 그림의 "레이아웃"을 사용자 정의하려면 GridView 또는 MediaAdapter를 수정합니까? 아니면 둘 다 수정합니까? 시간 내 주셔서 감사합니다. –

+0

나는 GridView를 실험 해왔다. GridView를 세로 또는 가로에 따라 변경되도록 사용자 지정하는 방법을 알아낼 수 없었습니다. XML에서 TableLayout을 사용하고 Java에서 TableRow를 동적으로 추가하여 세로 모드와 가로 모드 모두에서 더 예쁘게 만들 수 있다고 생각합니까? 시간 내 주셔서 감사합니다. –

+0

@ Jack Smartie GridView는 분명히 갈 길입니다. 한 방향에서 제대로 보이지 않는 경우보기의 XML 레이아웃 속성을 조정해야합니다. width와 height를'wrap_content'로 설정하고 layout_gravity를'center_horizontal'로 설정하면 아직 그렇게하지 않은 경우 도움이됩니다. – LeffelMania