2017-12-22 29 views
3

나는 augment reality android app에서 작업 중입니다. vuforia를 사용하여 화합으로 앱을 개발 한 다음 Android Studio에서 디자인을 가져 오려고 Android Studio에서 가져 왔습니다. 생성 된 프로젝트 구조의 활동 이름은 프로젝트에 레이아웃이없는 UnityPlayerActivity입니다. 활동이 UnityPlayer 클래스로 전달되고 레이아웃이 생성됩니다. 이것은 내 UnityPlayerActivity 활동 코드의 일부입니다.android에서 활동의 특정 레이아웃을로드하는 방법

protected UnityPlayer mUnityPlayer; // don't change the name of this variable; referenced from native code 

// Setup activity layout 
@Override protected void onCreate(Bundle savedInstanceState) 
{ 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    super.onCreate(savedInstanceState); 

    getWindow().setFormat(PixelFormat.RGBX_8888); // <--- This makes xperia play happy 

    mUnityPlayer = new UnityPlayer(this); 
    setContentView(mUnityPlayer); 
    mUnityPlayer.requestFocus(); 
} 

레이아웃을 사용함에 따라 어떻게 참조 할 수 있습니까?

Sample screenshot of that app

+0

좀 자세히 설명해 주시겠습니까? – Shaman

+0

레이아웃을 사용자 정의하고 싶지만 레이아웃을 생성하기 위해'UnityPlayerActivity' 액티비티를 어떻게 목표로 할 지 모르겠습니다! – Xious

답변

0

이 (자바 참조에 의해 호출을 지원하지 않습니다) 객체를 참조하여이 작업을 수행 할 수 없습니다.

레이아웃을 생성하고 LayoutParams 객체를 반환하는 UnityPlayer 클래스에서 새 함수를 정의해야합니다.

그런 다음 레이아웃 인플레이터를 사용하십시오. 이 같은 것 :

LayoutParams mParams=mUnityPlayer.layoutGenerator() //some function to generate LayoutParams 
LayoutInflator.getLayoutInflator().inflate(LayoutParams); 
+0

대신 setContentView –

+0

'UnityPlayer.class' 클래스는'unity-classes'Jar 파일에서 압축되어 있으며 (이미 컴파일되었으므로) 편집하거나 대체 할 수 없습니다. 그렇다면 어떻게해야합니까? – Xious

+0

그런 경우 클래스를 확장 한 다음 기존 메서드를 재정의 할 수 있습니다. –

0

마침내 나는 내 문제에 대한 쉬운 해결책을 발견했다. framelayout을 사용하여 서브 뷰에 단일성 장면을 표시 했으므로 이제 UI를 쉽게 사용자 정의 할 수 있습니다. 자세한 내용을 보려면 herehere을 확인하십시오.