기본적으로 나는 태블릿 용 응용 프로그램을 만들려고합니다. 테이블 레이아웃 내에서 사용자가 추가하고 제거한 위젯이 여러 개있을 것입니다. 위젯이 테이블 레이아웃의 너비와 높이에 따라 다르게 크기가 조정되도록 동적이어야합니다.안드로이드 화면의 치수 얻기
이렇게하려면 테이블 레이아웃에서 3x3 격자를 만들려고합니다. 짐작할 수 있듯이 각 사각형의 너비와 높이는 테이블 레이아웃의 33 %입니다.
이 내가 가진 것입니다 :
DisplayMetrics metrics;
int totalScreenSizeH;
int totalScreenSizeW;
TableLayout contentTable;
LinearLayout contentLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Get the UI detail
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
totalScreenSizeH = metrics.heightPixels;
totalScreenSizeW = metrics.widthPixels;
contentTable=(TableLayout)findViewById(R.id.tableLayout1);
contentLayout=(LinearLayout)findViewById(R.id.contentLayout);
int tableWidth =contentTable.getWidth();
int tableHeight=contentTable.getHeight();
int layoutWidth=contentLayout.getWidth();
int layoutHeight=contentLayout.getHeight();
Log.v("Table Width",""+tableWidth);
Log.v("Table Height",""+tableHeight);
Log.v("Layout Width",""+layoutWidth);
Log.v("Layout Height",""+layoutHeight);
그래서 그냥이 조금 더 잘 설명 할 수 있습니다. linearLayout에는 3 개의 테이블 행이있는 tablelayout이 있습니다. 나는 폭과 높이를 얻을 수있을 것이라고 생각했지만 어떤 이유로 두 가지 모두 크기가 0으로 돌아오고 있습니다. 하나는 너비와 높이가 희미하다. Im은 그 변수를 저장하고 그 변수/3을 기반으로 위젯을 만든다.
그래서이 질문 :
1 :이 동적 크기의 위젯을 처리 할 수있는 올바른 방법이다. 아니면 이런 문제를 처리하는 잘못된 방법입니까?
2 : 2-4 변수가 모두 0으로 되돌아가는 이유는 무엇입니까?
정확한 답변을 모르겠지만 테이블과 폰 (다양한 치수)을 지원하고 대시 보드 레이아웃을 지원하는 데 큰 도움이되는 자료를 알려줄 수 있습니다. 귀하의 3x3 그리드와 함께 설명하고 있습니다). Google 2011 IO 애플리케이션에는 이에 대한 몇 가지 훌륭한 가이드 라인이 있으며, 소스를 살펴보고 여기에서 수행 한 내용을 확인하는 것이 좋습니다. http://code.google.com/p/iosched/ – Jack