2010-05-25 4 views
1

애플리케이션 용 특정 위치에 객체를 배치해야하므로이 위치에서 AbsoluteLayout을 사용해야합니다.런타임 동안 동적 레이아웃이 변경됨

런타임 중에 다음 XML과 똑같은 버튼을 동적으로 추가하고 싶습니다.

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 
    <Button 
    android:id="@+id/backbutton" 
    android:text="TEST123" 
    android:layout_x="120px" 
    android:layout_y="120px" 
    android:layout_width="100px" 
    android:layout_height="100px" /> 
</AbsoluteLayout> 

어떻게 보관할 수 있습니까? 버튼을 추가하기 위해 다음 코드로 시도했지만 layout_x와 layout_y를 설정하기 위해 지금까지 함수를 찾지 못했습니다. 어떻게해야합니까? 감사. 당신이 레이아웃에 뷰를 추가 할 때

AbsoluteLayout al = new AbsoluteLayout(this); 
Button t = new Button(this); 
t.setHeight(300); 
t.setWidth(300); 
t.setText("TEST123"); 
// x y ??? 
setContentView(al); 

답변

1

, 당신은 당신이보기에 대한 레이아웃 정보를 지정하는 곳이다, LayoutParams를 제공 할 수 있습니다.

그러나 AbsoluteLayouts는 더 이상 사용되지 않습니다. 다른 화면 크기와 해상도를 어떻게 처리 할 예정입니까? 당신이 찾고있는 레이아웃을 비 - 비추천 레이아웃 객체의 조합으로 생성 할 수 있어야합니다. 시작 지점으로 developer docs을 참조하십시오.

목표를보다 자세하게 설명하면 누군가 적절한 레이아웃을 선택할 수 있도록 도와야합니다.

+0

실례로, 장치를 클릭하여 장치를 작동시켜 방아쇠를 당기는 방안을 상상해보십시오. 나는 배경 이미지가있는 버튼과 방의 배경 이미지를 사용하는 것에 대해 생각했다. 내 의견으로는 AbsoluteLayout을 사용하는 것보다 다른 방법이 없다. 전체 시간 (방의 올바른 위치)을 x/y 좌표로 처리해야하기 때문이다. 대신 나에게 무엇을 권하고 싶습니까? 화면 크기가 다른 문제는 레이아웃으로 N1과 가로 방향의 프로그램으로 무시했습니다. 나는 프로그램에서 문제를 일으키는 풍경/인물 전환을 비활성화했습니다. – Nils

+0

배경 이미지가 있고 배경에있는 버튼과 일렬로 정렬해야한다고 말하고 있습니까? 이 경우 다소 절대적으로 물건을 쌓아두기가 어려울 수도 있지만, FrameLayout이 그 방법으로 선호되는 방법이라고 생각합니다. 뷰를 겹칠 수 있습니다. 또한 N1 만 타겟팅하는 이유를 모르겠지만 그 중 일부는 안드로이드 기기에 불과하다는 것을 명심하십시오! http://developer.android.com/resources/dashboard/screens.html –

+0

음, 실제로이 배경 그림을 먼저 그려야합니다 (선으로 그려야하는 방의 2D지도를 상상해 본다) 클릭 가능한 이미지 (버튼?) 인 일부 항목을 배치합니다. 현재 GridView를 살펴보고 있지만 여전히 확실하지는 않습니다. 이는 올바른 것일 수 있습니다. – Nils

1

Canvas 메서드로 시도해야합니다. 실제 버튼을 만들지 않습니다,하지만 당신은 이미지로 작업 할 수 있습니다 -

onDraw(Canvas canvas) 

캔버스를 사용. 다음 링크도 살펴보십시오. Android drawing button to canvas with custom view?

관련 문제