Согласно описанию FrameLayout для Android-разработчиков
Дочерние представления отображаются в стеке с последним добавленным дочерним элементом сверху.
Итак, в вашем xml LinearLayout
рисуется последним, и, поскольку оно имеет атрибуты match_parent
, оно полностью скрывает вашу поверхность рисования.
Итак, попробуйте использовать RelativeLayout
, иустановите для атрибутов LinearLayout
значение wrap_content
, что-то вроде этого:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg2"
>
<com.myapp.drawings.DrawingSurface
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/drawingSurface"
/>
<LinearLayout
android:orientation="horizontal"
android:background="@drawable/bg2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="OK"
android:onClick="onClick"
android:id="@+id/colorBlueBtn"
/>
<Button
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:text="Save"
android:onClick="onClick"
android:id="@+id/saveBtn"
/>
</LinearLayout>
</RelativeLayout>
Вы также можете полностью исключить LinearLayout
и просто установить атрибуты кнопок, чтобы они оставались внизу и т. д..