Android如何在ImageView上绘制几行作为另一层?

时间:2015-05-23 02:13:38

标签: android

我想让应用程序绘制几行来显示用户方向,方法是使用背景图像作为基本视图,然后应用程序在背景ImageView之上的另一层“绘制”它。为了实现目标,还要在特定的位置设置几条线,所以它必须有几层太正确? 我找到了使用XML

绘制单行的技巧
<View 
  android:id="@+id/line"
  android:layout_width="2dip"
  android:layout_height="300dip"
  android:background="#000000"
/>

但该代码不会显示位置,也不会以分层形式显示。

更新: 我想通过绘图来显示线条,而不是通过另一张图片

3 个答案:

答案 0 :(得分:1)

您可以制作自定义SurfaceView课程,将图片设置为背景,并在Canvas上绘制线条。如果我正确地理解了你想要达到的目标,那可能是最简单的方法。

SurfaceView是来自Android框架的小部件。扩展它以制作您自己的:MySurfaceView extends SurfaceView。然后覆盖public void onDraw(Canvas canvas),如android_user77所述。使用此画布对象进行绘制。最后,在布局xml中添加您的类:

<com.your.app.MySurfaceView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/my_image" />

有关使用SurfaceView代替View的原因的详细信息: Difference between SurfaceView and View?

答案 1 :(得分:0)

您可以通过覆盖onDraw方法

来扩展视图并进行绘制

答案 2 :(得分:0)

使用FrameLayout创建许多&#34;层&#34;。我不认为你想在视图上画任何东西。所以不要使用onDraw(),SurfaceView ......

代码如下:

<FrameLayout ...>
<ImageView id="@+id/layer1"...> 
<ImageView id="@+id/layer2"...>
</FrameLayout>