我正在尝试在 a 上绘制文本,SurfaceView
但什么都看不到。
当我尝试获取View
0 的宽度和高度时,虽然它应该填充父元素,但它会返回。
相机预览.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);
}
}