【发布时间】:2012-02-19 03:27:13
【问题描述】:
我有一个 SlidingDrawer 和一个呈现图像的自定义 SurfaceView。我刚刚尝试将 SlidingDrawer 向上拖动,并在这样做时发现它位于 SurfaceView 中的图像后面并且完全隐藏。
您可以想象这对用户没有多大用处,因此需要图像在拉起时始终落在 SlidingDrawer 后面。这可能吗?
如果它有助于这是 xml 中的 SlidingDrawer:
<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>
这是 xml 中的 SurfaceView:
<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);
}
【问题讨论】:
标签: android android-layout surfaceview slidingdrawer