我有这样的XML布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.somedomain.drawings.DrawingSurface
android:layout_width="fill_parent"
android:layout_height="200dip"
android:id="@+id/drawingSurface"
android:background="@drawable/bg2"/>
<LinearLayout
android:orientation="horizontal"
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/colorGreenBtn" />
</LinearLayout>
</RelativeLayout>
当我尝试在DrawingSurface上绘图时,绘图没有显示。但画布的背景图像正在显示。当我保存它时,绘图显示在输出上。
当我删除DrawingSurface的背景图像并尝试绘制它时,它正在显示。
我想在用户在画布上绘制背景图片时显示绘图。有任何想法吗?非常感谢您的帮助! :)
更新:这是我的绘图代码
@Override
public void run() {
Canvas canvas = null;
while (_run){
if(isDrawing == true){
try{
canvas = mSurfaceHolder.lockCanvas(null);
if(mBitmap == null){
mBitmap = Bitmap.createBitmap (1, 1, Bitmap.Config.ARGB_8888);
}
final Canvas c = new Canvas (mBitmap);
c.drawColor(0, PorterDuff.Mode.CLEAR);
canvas.drawColor(0, PorterDuff.Mode.CLEAR);
canvas.drawColor(0x00000000);
commandManager.executeAll(c,previewDoneHandler);
previewPath.draw(c);
canvas.drawBitmap (mBitmap, 0, 0,null);
} finally {
mSurfaceHolder.unlockCanvasAndPost(canvas);
}
}
}
}
答案 0 :(得分:0)
尝试一些事情:
1)将ImageView放在XML中的drawSurface之前,并将bg放入ImageView。
我知道surfaceView与其他视图不同,但你可以试试。
2)也许你可以先将绘图线程开始绘制到画布上。 canvas.drawBitmap()可能是你想要使用的那个。