현재 레이아웃 생성 코드로 약간 놀고 있습니다. 가 나는 코드의이 부분에 문제가 recogniced :이 라인은 모든 주석 LayoutParams로 이상한 비젼
i.setLayoutParams(new LayoutParams(dp_x, dp_x));
가 올바르게 표시됩니다
dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int dp_x = (dm.widthPixels - 32)/10;
for(int x = 0; x < 9; x++) {
TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
for(int y = 0; y < 9; y++) {
ImageView i = new ImageView(this);
i.setClickable(true);
i.setLayoutParams(new LayoutParams(dp_x, dp_x));
i.setScaleType(ScaleType.FIT_XY);
i.setImageDrawable(getResources().getDrawable(R.drawable.i0));
iv[x][y] = i;
tr.addView(iv[x][y]);
}
fieldLayout.addView(tr);
}
는 특히이 라인은 문제가 발생할 것으로 보인다. 그러나 주석을 제거하자마자 ImageViews 중 하나가 표시되지 않습니다. 디버깅을 살펴본 결과 모든 값이 ImageView에 올바르게 추가 된 것 같습니다. 아이디어,이 오류의 원인은 무엇입니까?
또 다른 것은 - DisplayMetrics와 너비/높이를 사용하는 것이 좋습니다. 여기서는 디스플레이에 따라 ImageViews의 크기를 조절하는 데 사용합니다. 다른 방법으로도이를 수행 할 수 있습니까?
모든 아이디어,이 오류의 원인은 무엇입니까? * - 항상 적절한 LayoutParams (부모의 경우 'LayoutParams' 대신에 귀하의 경우'TableRow')를 사용하십시오. – Luksprog
좋습니다. 그 정보를 가져 주셔서 감사합니다. –