У меня есть как SlidingDrawer, так и пользовательский SurfaceView, который отображает изображение. Я только что попытался перетащить SlidingDrawer вверх и при этом обнаружил, что он находится за изображением в SurfaceView и полностью скрыт.
Как вы понимаете, от этого не будет особой пользы для пользователя и, следовательно, изображение должно всегда отставать от SlidingDrawer, когда его поднимают. Возможно ли это?
Если это помогает, это SlidingDrawer в xml:
<SlidingDrawer
android:id="@+id/drawer"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:handle="@+id/handle"
android:content="@+id/content"
android:layout_alignParentBottom="true">
<TextView
android:id="@id/handle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:textStyle="bold"
android:text="text"/>
<include layout="@layout/content"
android:id="@id/content"
android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
</SlidingDrawer>
А это SurfaceView в xml:
<FrameLayout android:id="@+id/FrameLayout01"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<com.android.imagemagic.widgets.ImageManipulationSurfaceView
android:id="@+id/surfaceArea"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:layout_gravity="center"/>
</FrameLayout>
SurfaceView является настраиваемым и использует следующий код в методе onDraw ():
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
//Clear canvas
Paint paint = new Paint();
paint.setXfermode(new PorterDuffXfermode(Mode.CLEAR));
canvas.drawPaint(paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC));
// Draw image
canvas.drawBitmap(image, imageX, imageY, null);
}