2017-12-22 25 views
3

私はaugment reality android appで作業しています。私はvuforiaを使用して統一でアプリを開発し、アンドロイドスタジオにインポートしました。私はアンドロイドスタジオでデザインしたいと思っていました。生成されたプロジェクト構造のアクティビティ名は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

(Javaは参照することにより通話をサポートしていません)オブジェクトを参照することによってこれを行うことはできません。

レイアウトを生成し、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を確認してください。

関連する問題