Ric*_*win 5 android surfaceview slidingdrawer android-layout
我有一个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>
Run Code Online (Sandbox Code Playgroud)
这是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>
Run Code Online (Sandbox Code Playgroud)
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);
}
Run Code Online (Sandbox Code Playgroud)
经过大量扫描后,我从下面的Stack Overflow页面找到了我的问题的(简单)答案:Android:SlidingDrawer在SurfaceView下消失了.很简单,在SlidingDrawer xml元素中添加:
android:background="#00000000";
Run Code Online (Sandbox Code Playgroud)
编辑
在重复背景之后恢复了我的原始代码它再次停止工作.最后,我发现我遇到的另一个问题是停止了上述解决方案的工作.为了其他人的利益,请确保不要通过以下方式将SurfaceView z-index设置为顶部:
sv.setZOrderOnTop(true);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2893 次 |
最近记录: |