我的視圖是一堆普通的小部件和surfaceview。我不知道爲什麼在我得到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
}
當我看到Android的文檔getSurface()
方法。這是怎麼說的:
直接訪問表面對象。 Surface可能並不總是 - 例如,在使用SurfaceView時,持有人的Surface 不會創建,直到視圖已附加到窗口管理器 並執行佈局以確定尺寸和屏幕 的位置表面。因此,您通常需要執行 Callback.surfaceCreated以瞭解Surface何時可以使用 。
我不明白這這麼多,但我知道我有想念的東西。請爲我解釋,並告訴我有關Callback.surfaceCreated
的手段,以及如何實施它?
謝謝:)