SurfaceVanged() 또는 surfaceDestroyed()와 같이 SurfaceView 내부에서 호출하고 싶은 액티비티 클래스에 정적이 아닌 패키지 전용 메서드가 있습니다.SurfaceView의 Activity에서 package-private 메서드를 호출하려면 어떻게해야합니까?
public class MyActivity extends Activity {
Camera mCamera = Camera.open();
Camera.Parameters parameters = mCamera.getParameters();
boolean hasFlash = false;
...
void destroyCamera() {
flashOff();
mCamera.stopPreview();
mCamera.release();
mCamera = null;
}
void updateCamera() {
mCamera.setParameters(parameters);
mCamera.startPreview();
}
...
class CameraView extends SurfaceView implements SurfaceHolder.Callback {
...
public void surfaceDestroyed(SurfaceHolder holder) {
destroyCamera();
}
...
더 좋은 방법이 있나요? 또한 같은 액티비티에 toggleFlash() 메서드가 있으므로 키 수신기를 통해 액티비티 내에서 플래시를 토글 할 수 있습니다.
당신이 요구하는 것을 매우 불분명하다. 당신은'SurfaceView'라고 말하지만, 코드에는 아무 것도 언급되어 있지 않습니다. 더 구체적으로 말하십시오. – Phil
Activity에서 메소드를 호출하려고하는 SurfaceView 클래스를 추가했습니다. 오버로드 된 생성자에서 매개 변수로 액티비티를 전달할 수 있습니까? 제가 묻는 것은 SurfaceView 클래스의 Activity 클래스에서 메서드를 호출하는 가장 좋은 방법입니다. 혼란을 드려 죄송합니다 :) – user2081718