0

にテキストを描画しようとしていますSurfaceViewが、何も表示されません。

親要素を埋める必要がありますが、幅と高さを取得しようとするとView0 が返されます。

camerapreview.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 に答える