2012-09-07 4 views
0

회사 용 Android 기반 OpenGL 응용 프로그램을 개발하기 위해 코더를 대여했습니다. 응용 프로그램은 꽤 복잡한 것들을 수행하고 (내 다른 응용 프로그램에서) 의도를 통해 전달 된 좌표를 기반으로 3D 튜브를 렌더링합니다. 응용 프로그램을 종료하고 원래의 응용 프로그램으로 돌아가려면 버튼을 OpenGL 응용 프로그램에 추가해야합니다. 필자는 자바 만 다루었 고 레이아웃이 포함되지 않은 경우 요소를 추가하는 방법을 모릅니다. 버튼이 OpenGL 기반이되는 것을 원하지 않습니다. 실제로 OpenGL에 대해 알지 못하기 때문에 Android 요소를 사용하는 것이 좋습니다.OpenGL보기 상단에 버튼 추가

이것은 만드는 루틴의 모습입니다. (앱을 실행하는 의도는 데이터를 전달합니다. 컴파일하려면 코드를 주석 처리하고 데이터를 보완해야했습니다.)

protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 

    Intent intent = getIntent(); 
    //String data = intent.getStringExtra("data");       
    //double radius = Double.parseDouble(intent.getStringExtra("radius"));       
    //double width = Double.parseDouble(intent.getStringExtra("width"));        
    String data = "254,0,90,2,254,0,90,2"; 
    double radius = 20; 
    double width = 10; 
    openGLTube3D = new OpenGLTube3D(this, data, radius, radius, width); 
    setContentView(openGLTube3D); 
} 

그는 자신의 OpenGL 클래스 대신 XML 파일로 setContentView()을 사용하기 때문에 어디서 버튼을 추가 할 생각이 없다.

아무도 도와 줄 수 있습니까?

루트로 FrameLayout이와 함께, 당신은 일반적인 방식과 같은 XML 파일을 작성하지만, OpenGL을보기를 생략 : OpenGLTube3D가보기 인 경우

답변

3

, 그때 추천 할 것입니다. 여기에는 OpenGL보기 위에 배치 할 단추 또는 위젯이 있어야합니다.

이 같은 (I 메모리에서이 쓰고 있어요, 아래 구문 오류 용서) 할 것입니다 :

<FrameLayout 
    android:id="@+id/myframelayout> 
    <Button 
     android:... 
     android:... 
     android:... /> 
</FrameLayout> 

그런 다음에서 onCreate에, 당신은 콘텐츠보기로 layout.xml 설정할을 다음 첫 번째 인덱스로 FrameLayout이에 OpenGL을보기를 삽입 할 (그래서 버튼 아래에 표시됩니다)

의사 코드 :이은을 배치한다고 생각

openGLTube3D = new OpenGLTube3D(this, data, radius, radius, width);  
FrameLayout frame = (FrameLayout)findViewById(R.id.myframelayout); 
frame.addView(openGLTube3D, 0); 

framelayout에 정의 된 다른 모든 요소 아래의 OpenGL보기.

+0

여기까지입니다! 당신의 도움을 주셔서 감사합니다. 죄송합니다. 코드를 테스트하는 데 오랜 시간이 걸렸습니다. 내가 당신이 hah에 대해 이야기하고있는 것을 이해하기 전에 Java에 대해 조금 더 배워야했습니다. – user1537360

+0

이것은 훌륭했습니다! 감사 –

관련 문제