0
SurfaceView
에 텍스트를 그려야하지만 아무것도 표시되지 않습니다.SurfaceView에 텍스트를 그립니다.
View
의 너비와 높이를 가져 오려고하면 부모 요소를 채워야하지만 0이 반환됩니다.
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);
}
}
텍스트를 표면 뷰에 그리는 것과는 아무런 관계가 없습니다. – RichieHH