내 첫 번째 안드로이드 응용 프로그램을 쓰고 있습니다. 안드로이드 2.3.3 SDK를 사용하고 있습니다. 게임은 화면에 4x4 격자의 카드가있는 종류의 카드 게임입니다.화면 전체에 DataGrid를 펼치면 항목이 모두 표시됩니다.
게임이 시작될 때 화면에 표시되는 것은 데이터 그리드 (메뉴가 없거나 아무것도 표시되지 않음)뿐입니다.
그래서 GameActivity 레이아웃은 다음
<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/faces_grid_view"
android:numColumns="4"
android:verticalSpacing="1dp"
android:horizontalSpacing="1dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
>
</GridView>
이는 GameActivity 클래스의에서 onCreate 함수의 관련 코드입니다 :하지 OnCreate
Display display = getWindowManager().getDefaultDisplay();
final int width = display.getWidth();
final int height = display.getHeight();
final int bottomPadding=150;
//Display display = getWindowManager().getDefaultDisplay();
gameTurns = new ArrayList<GameTurn>();
imageWidth=width/4;
imageHeight=(height-bottomPadding)/4;
imageAdapter = new ImageAdapter(this,imageWidth,imageHeight);
facesGridView = (GridView) findViewById(R.id.faces_grid_view);
facesGridView.setAdapter(imageAdapter);
() 코드를 내가지고있어 defaultDisplaySize를 4로 나눈 값이므로 이미지의 최대 높이와 너비를 알 수 있습니다.
- 나는 bottomPadding을 추가해야합니다. 나는 갤럭시 노트와 갤럭시 탭 10.1에서 체크했고, 아마도 getDefaultDisplay는 태블릿 자체의 하단 툴바의 공간을 반환하므로 그림이 패딩없이 모든 스크린에 겹쳐진다.
제가 알기로 저는 GridView 용 어댑터를 설정했습니다. 어댑터는 BaseAdapter 을 확장하고 이전에 계산 한 너비와 높이를 생성자에 붙여 넣습니다.
어댑터의의 getView 기능이 포함 된 다음
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);
LayoutParams param = new LinearLayout.LayoutParams(this.imageWidth,this.imageHeight);
imageView.setLayoutParams(new GridView.LayoutParams(param));
imageView.setAdjustViewBounds(true);
imageView.setScaleType(ScaleType.CENTER_INSIDE);
imageView.setPadding(1,1,1,1);
} else {
imageView = (ImageView) convertView;
}
그래서 몇 가지 질문 :
- 그냥 모든 화면에서 볼 수 있도록 데이터 그리드를 구성하는 방법이 있고 이미지 너비 또는 높이를 구성하지 않고 스크롤하지 않고 모든 항목을 표시 하시겠습니까? 왜 그렇게 간단한 작업을 위해 열심히 일해야합니까?
- 직접 물건을 계산해야하는 경우 실제 활동 높이와 너비를 가져 오는 방법이 있습니까? 그래서 어떤 덧 덧치도 추가하지 않아도됩니까? welp 나는 풍경과 초상화의 모든 scree 크기에서 작업하기를 원한다.
며칠 동안 구성을 변경하고 사용하는 것이 지겹았습니다. 지금까지 내가 달성 한 최선의 방법이므로이 문제에 관한 모든 정보를 크게 높이 평가할 수 있습니다. 중심 수직 확산 이미지 4에
업데이트
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="*"
android:weightSum="4" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
>
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
>
<ImageView
android:id="@+id/imageView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView8"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
>
<ImageView
android:id="@+id/imageView9"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView11"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView12"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
>
<ImageView
android:id="@+id/imageView13"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView14"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView15"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
<ImageView
android:id="@+id/imageView16"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/face"
android:onClick="onItemClick"
/>
</TableRow>
</TableLayout>
XML 파일이 결과 (더 아래에있을 수 있도록 이것이 모든 화면에 맞는).
screenshot http://i49.tinypic.com/qn3d6t.png.
나는 무엇을 놓쳤는가? :)
감사합니다!
Kfir
놀라운 것! 지금 해보고 나중에 알게. 덕분에 – ufk
감사합니다. 나는 여전히 기대되는 결과를 얻지 못한다. 나는 여기에 새로운 XML 파일을 게시했다. 덕분에 지금까지 :) – ufk
ohh .. 또한 weightSum = 4 각 tableRow 및 layout_weight = 1 각 이미지를 추가했습니다. 이제는 효과가있는 것처럼 보입니다. 테스트. – ufk