0

我正在尝试在 a 上绘制文本,SurfaceView但什么都看不到。

当我尝试获取View0 的宽度和高度时,虽然它应该填充父元素,但它会返回。

相机预览.xml

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent">
    <SurfaceView
            android:id="@+id/svCamera"
            android:layout_height="fill_parent"
            android:layout_width="fill_parent"/>

    <FrameLayout
            android:layout_height="fill_parent"
            android:layout_width="fill_parent">
        <View
                android:id="@+id/vOverlays"
                android:layout_height="fill_parent"
                android:layout_width="fill_parent"/>
    </FrameLayout>
</FrameLayout>

CameraActivity.java

public class CameraActivity extends Activity {
    private Camera camera;
    private CameraPreview cameraPreview;
    private View vOverlays;
    private SurfaceHolder svHolder;
    private SurfaceView svCamera;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.camerapreview);

        svCamera = (SurfaceView) findViewById(R.id.svCamera);
        vOverlays = findViewById(R.id.vOverlays);
    }

    @Override
    protected void onResume() {
        super.onResume();

        camera = Camera.open();

        svHolder = svCamera.getHolder();
        cameraPreview = new CameraPreview(svHolder, camera);
        svHolder.addCallback(cameraPreview);
        svHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

        Canvas canvas = new Canvas();
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        paint.setTextSize(10);

        canvas.drawText("Testext", vOverlays.getWidth() / 2, vOverlays.getHeight() / 2, paint);
        vOverlays.draw(canvas);
    }
}
4

1 回答 1

-2

您可以在它自己的父视图上添加文本视图,以创建动态文本视图并将其添加到您的父布局中。在这里你需要获得框架布局的参考,你可以添加你的文本视图......

frame_layout.addView(text_view);
text_view.bringToFront(); 
于 2012-07-13T13:20:55.853 回答