2

Android用のライブ壁紙を作ろうとしましたが、画面の回転ができません.lwpはサービスであり、アクティビティではありません。次のようなものを呼び出す場合のように、向き(横/縦)ではなく、整数値(0/90/180/270)が必要です。

((Activity) context).getResources().getConfiguration().orientation;

可能です?私は多くの方法を試し、多くの記事を読みましたが、それができず、役立つ情報を見つけることができません。

ありがとう!

4

1 に答える 1

4

だから、私は解決策を見つけました:)

public int getRotation() {
    int orientation = ((WindowManager) context.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay().getOrientation();

    switch (orientation) {
        case Surface.ROTATION_90:  return 90;
        case Surface.ROTATION_180: return 180;
        case Surface.ROTATION_270: return 270;
        default: return 0;
    }
}

しかし、私の場合は少しバグがあり、理由はまだわかりません: デバイスを 0 度の位置 (縦向き) に置き、180 度に回転すると、何も検出されないか、90 度から 270 度、またはその逆です。ただし、デバイスを 0 から 90 または 270、または 90 から 180 および 0 などに回転させると、すべて問題ありません (さまざまな向き)。

于 2012-11-07T09:59:01.647 に答える