对于我的单身汉论文,我创造了一种可穿戴设备,可以检测到它被放置在身体上的位置。 它通过BLE连接到Android设备,并告诉手机它已放置在哪里。
现在我要展示一张"地图"身体和动画一个闪烁的点(我从现在开始调用指示器)或身体上放置可穿戴设备的东西。它可能是身体不同部位的多个设备。如果身体上放置了一个新设备,它应该在身体图上闪烁。
我读过关于AnimationDrawable这是不切实际的,因为我必须创建太多不同的帧。 Tweened view animation一开始听起来不错,但我需要访问每个指标。我也尝试使用画布创建动画,实际上可以解决这个问题,但是我需要重新绘制以获得良好的动画效果。
我通常开发网络前端,所以我想也许只是将指标绝对定位在背景图像上,然后告诉每个指标它是否应该可见或是否应该闪烁等将是一个好方法。所以我尝试用一个drawables的图层列表来实现这一点,给每个人一个id。然后我可以操纵每一个。但我无法让它发挥作用。
我也可以选择使用OpenGL,但我认为这会花费太多开销。
所以我的问题是什么是创建绝对放在背景图像上的多个可单独控制的东西的最佳方法。有什么想法?
提前感谢您的回答。
答案 0 :(得分:0)
你可以使用SurfaceView(知道你提到过),然后在SurfaceView上绘制正文的背景位图。这会给你身体。
然后你所要做的就是渲染点。
请注意,如果这很简单,您可以通过覆盖ImageView的onDraw而不是使用后台线程实现SurfaceView来逃脱。
希望这有帮助,听起来像一个有趣的项目。
答案 1 :(得分:0)
我认为有一个绝对布局,但在API级别3中已弃用。
所以现在我跟这个:
<ImageView
android:id="@+id/figure"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/man"
android:layout_centerHorizontal="true"
/>
<ImageView
android:id="@+id/beSeen_arm_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:layout_marginLeft="80dp"
android:layout_marginTop="120dp"
android:clickable="true" />
<ImageView
android:id="@+id/beSeen_arm_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:layout_marginLeft="230dp"
android:layout_marginTop="120dp"
/>
<ImageView
android:id="@+id/beSeen_forearm_left"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:layout_marginLeft="70dp"
android:layout_marginTop="190dp"
/>
<ImageView
android:id="@+id/beSeen_forearm_right"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:layout_marginLeft="240dp"
android:layout_marginTop="200dp"
/>
<ImageView
android:id="@+id/beSeen_back_top"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:layout_marginLeft="160dp"
android:layout_marginTop="90dp"
/>
<ImageView
android:id="@+id/beSeen_head"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/ic_launcher"
android:layout_marginLeft="160dp"
android:layout_marginTop="10dp"
/>
</RelativeLayout>
这不是最好的,我猜它与AbsoluteLayout有相同的缺点。
像%而不是dp这样的东西对于我猜的边距会很好。