私は現在、非常に集中的で画面の回転をうまく処理できないライブ壁紙を作成しています。ライブ壁紙の画面回転
実際に壁紙が破壊され、onSurfaceChangedを呼び出さずに空白の画面が表示されます。ここで
は私がonSurfaceChangedメソッド内持っているものです。
@Override
public void onSurfaceChanged(SurfaceHolder holder, int format,
int width, int height) {
// TODO Auto-generated method stub
super.onSurfaceChanged(holder, format, width, height);
mRatio = (float) width/height;
if (mRatio > 1) {
orientation = 0;
}
if (mRatio < 1) {
orientation = 1;
}
setRunning(true);
Log.i(TAG, "Screen Rotation...");
mHandle.post(r);
}
私はログメッセージが存在しないため、このメソッドが呼び出されませんポジティブです。
なぜこのようなことが起こり、画面の回転を処理するための技術は何ですか? 私のライブ壁紙が非常に集中しているため、空白を呼び出すことができませんか?
また、onVisibilityChangedはないとしても呼ばれ、私はエミュレータでアプリを開くと、ログ・メッセージがない:あなたのマニフェストに
@Override
public void onVisibilityChanged(boolean visible) {
// TODO Auto-generated method stub
super.onVisibilityChanged(visible);
if (visible) {
setRunning(true);
Log.i(TAG, "Visible...");
mHandle.postDelayed(r, 2000);
} else {
setRunning(false);
Log.i(TAG, "Invisible...");
mHandle.removeCallbacks(r);
}
}
:
onVisibilityChanged
あなたが名前から期待するものではありませんもっとコードを投稿できますか?すべての重い作業がどこで行われたかを知る必要があります。私のライブ壁紙では、画面の回転中にonSurfaceChangedとonVisibilityChangedの両方が呼び出されます。また、LogCatでオリエンテーションの変更中に「タイムアウトが壁紙を待つのを待っています」のようなものを確認してください。応答のための – Ole