是否可以与特定的子视图交互而忽略所有其他兄弟姐妹?

时间:2017-03-26 04:25:36

标签: android

我正在使用FrameLayout在Android中创建一个小型触摸绘图应用程序,我已经包含了三个自定义视图,这些视图是绘制画布的。堆叠中的第一个孩子有白色背景,而顶部的两个孩子是透明的。我设法让绘图和擦除在所有三个层上都正常运行。

好像我只能绘制位于堆栈顶部的子视图,即第3层。使用layerx.bringToFront();似乎也无法解决我的问题,因为我希望保持图层的正确z顺序。

是否可以画上"第2层"在第1层和第3层之间居中,新路径位于第3层和第1层之上?

(如果我的解释有点不清楚,我道歉。如果需要,我可以提供图片。)

编辑:这是一张澄清我的问题的图片: L1, L2 and L3 points to Layers 1, 2, and 3 respectively, with "Bottom" in layer 1 being drawn in green, "mid" in layer 2 drawn in black, and "top" in layer 3 being drawn in purple.

这是我绘制文字的顺序:

  1. 第1层 - 绿色文字
  2. 第2层 - 黑色文字
  3. 第3层 - 紫色文字
  4. 第2层 - 底部绘制的黑线
  5. 我希望每当我回到第2层时,将在第1层的现有路径上以及第3层的现有路径上绘制新路径。这可能吗?

    XML代码显示了三个自定义子视图的布局:

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="com.example.user.layerpaint.MainActivity">
    
    
    <FrameLayout
        android:layout_width="match_parent"
        android:layout_height="450dp"
        android:clipChildren="false"
        android:id="@+id/frames">
    
        <com.example.user.layerpaint.DrawingView
            android:id="@+id/layer3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="3dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="3dp"
            android:focusable="true"
            android:background="@null"/>
    
        <com.example.user.layerpaint.DrawingView
            android:id="@+id/layer2"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="3dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="3dp"
            android:focusable="true"
            android:background="@null"/>
    
        <com.example.user.layerpaint.DrawingView
            android:id="@+id/layer1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginBottom="3dp"
            android:layout_marginLeft="5dp"
            android:layout_marginRight="5dp"
            android:layout_marginTop="3dp"
            android:focusable="true"
            android:background="#FFFFFFFF"/>
    
    </FrameLayout>
    

0 个答案:

没有答案