내보기는 일반적인 위젯과 표면보기의 무리입니다. 왜 SurfaceView의 surfaceholder
을 얻고 홀더에 getSurface()
을 다시 사용하는지 모르겠다. 나는 항상 null을 반환 할 것이다.Android : holder.getSurface() 항상 null을 반환합니다.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view);
}
@Override
public void onResume() {
super.onResume();
surface = (SurfaceView) findViewById(R.id.surfaceView);
this.holder = surface.getHolder();
if (holder.getSurface().isValid()){ // get surface again
Log.i("Notice","Surface holder is valid");
}
else
Log.i("Notice","Surface holder ISNOT valid"); //Always receive this
}
내가 getSurface()
방법에 대한 안드로이드 문서를 볼 때 :
여기 내 예제 코드입니다. 이 말은 다음과 같습니다.
표면 개체에 대한 직접 액세스. 표면이 항상 일 수는 없습니다. 예를 들어 SurfaceView를 사용하는 경우 홀더의 표면 은 창 관리자 에 뷰가 첨부되고 레이아웃을 수행하여 치수 및 화면을 결정하기 위해 생성됩니다. 표면. 따라서 Surface를 사용할 수있는 경우를 확인하려면 Callback.surfaceCreated를 구현해야합니다.
나는 이것을 너무 많이 이해하지 못한다. 그러나 나는 뭔가를 놓친다는 것을 안다. 제게 설명해 주시고 Callback.surfaceCreated
의미에 대해 말씀해 주시고 구현 방법을 알려주십시오. 아직 사용할 수없는 경우
감사합니다 :)