如何将 UrhoSharp Surface 附加到 ViewGroup 中的 LinearLayout class
How to attach UrhoSharp Surface to LinearLayout in ViewGroup class
我正在尝试将 UrohSharp Surface 添加到继承自 ViewGroup
的 class 中的 LinearLayout
(放置在另一个视图的左上角)。
显示在 Android 中实现的 UrhoSharp 的大多数示例是直接在主 activity 中完成的,如下所示:
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var mLayout = new AbsoluteLayout(this);
surface = UrhoSurface.CreateSurface(this);// (this, , true);
mLayout.AddView(surface);
SetContentView(mLayout);
dronModel = await surface.Show<DroneScene>(new ApplicationOptions("Data"));
}
或者用布局文件中的一个元素:
<Urho.Droid.UrhoSurfacePlaceholder
android:id="@+id/DroidModelId"
android:background="@color/colorPrimary"
android:layout_height="300dp"
android:layout_width="match_parent"/>
并像这样替换它:
public override async void OnViewCreated(Android.Views.View view, Bundle savedInstanceState)
{
base.OnViewCreated(view, savedInstanceState);
surface = UrhoSurface.CreateSurface(base.Activity);
UrhoSurfacePlaceholder parent = view.FindViewById<UrhoSurfacePlaceholder>(Resource.Id.DroidModelId);
parent.AddView(surface);
droneModel = await surface.Show<DroneModel>(new ApplicationOptions("Data"));
但是,我需要做的是创建某种视图来封装 Urho 代码并像这样以某种方式引用它:
<My.App.Droid.Views.Drone.Model.DroneModelView
android:id="@+id/DroneModel2"
android:layout_marginTop="32dp"
android:layout_marginLeft="32dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_width="55dp"
android:layout_height="55dp"
android:background="@null"/>
然后从 activity 主视图抓取它:
droneModelView = FindViewById<DroneModelView>(Resource.Id.DroneModel2);
由于 UrhoSurface.CreateSurface
需要 Activity 对象,我不确定如何最好地处理这个 - 据我所知没有 "clean" 到达 [=36] 的方法=] 来自 class 继承 ViewGroup
?最终目标是在包含许多以类似方式引用的其他元素的视图中显示 3D 模型。
这里有一个在CustomView中给LinearLayout添加RatingBar的简单例子,你可以参考一下,把RatingBar改成你的UrohSharp Surface
我正在尝试将 UrohSharp Surface 添加到继承自 ViewGroup
的 class 中的 LinearLayout
(放置在另一个视图的左上角)。
显示在 Android 中实现的 UrhoSharp 的大多数示例是直接在主 activity 中完成的,如下所示:
protected override async void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
var mLayout = new AbsoluteLayout(this);
surface = UrhoSurface.CreateSurface(this);// (this, , true);
mLayout.AddView(surface);
SetContentView(mLayout);
dronModel = await surface.Show<DroneScene>(new ApplicationOptions("Data"));
}
或者用布局文件中的一个元素:
<Urho.Droid.UrhoSurfacePlaceholder
android:id="@+id/DroidModelId"
android:background="@color/colorPrimary"
android:layout_height="300dp"
android:layout_width="match_parent"/>
并像这样替换它:
public override async void OnViewCreated(Android.Views.View view, Bundle savedInstanceState)
{
base.OnViewCreated(view, savedInstanceState);
surface = UrhoSurface.CreateSurface(base.Activity);
UrhoSurfacePlaceholder parent = view.FindViewById<UrhoSurfacePlaceholder>(Resource.Id.DroidModelId);
parent.AddView(surface);
droneModel = await surface.Show<DroneModel>(new ApplicationOptions("Data"));
但是,我需要做的是创建某种视图来封装 Urho 代码并像这样以某种方式引用它:
<My.App.Droid.Views.Drone.Model.DroneModelView
android:id="@+id/DroneModel2"
android:layout_marginTop="32dp"
android:layout_marginLeft="32dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_width="55dp"
android:layout_height="55dp"
android:background="@null"/>
然后从 activity 主视图抓取它:
droneModelView = FindViewById<DroneModelView>(Resource.Id.DroneModel2);
由于 UrhoSurface.CreateSurface
需要 Activity 对象,我不确定如何最好地处理这个 - 据我所知没有 "clean" 到达 [=36] 的方法=] 来自 class 继承 ViewGroup
?最终目标是在包含许多以类似方式引用的其他元素的视图中显示 3D 模型。
这里有一个在CustomView中给LinearLayout添加RatingBar的简单例子,你可以参考一下,把RatingBar改成你的UrohSharp Surface