時計回り/反時計回りに 90 度回転する可能性のある FrameLayout に基づいて ViewGroup を作成しようとしていますが、それでも正しく動作します
これまでのところ、私の結果はそれほど成功していません。今のところこんな感じです(左が回転前、右が回転後、真っ赤でごめんなさい)
アクティビティのレイアウト
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.TestProject.RotatedFrameLayout
android:id="@+id/container"
android:layout_centerInParent="true"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00F"/>
</RelativeLayout>
RotatedFrameLayout
public class RotatedFrameLayout extends FrameLayout {
private boolean firstMeasure = true;
public RotatedFrameLayout( Context context ) {
super( context );
init();
}
public RotatedFrameLayout( Context context, AttributeSet attrs ) {
super( context, attrs );
init();
}
public RotatedFrameLayout( Context context, AttributeSet attrs, int defStyle ) {
super( context, attrs, defStyle );
init();
}
private void init() {
setRotation( 90f );
}
@Override
protected void onMeasure( int widthMeasureSpec, int heightMeasureSpec ) {
super.onMeasure( heightMeasureSpec, widthMeasureSpec );
}
}
追加情報
- ボタンをクリックできないため、アニメーションの回転を使用したくない
- Nexus 7 では画面のナビゲーション ボタンが横向きに表示されるため、横向きモードを使用したくありません (これが、回転を大きくしようとしている主な理由です)。
- 画面の左右だけが範囲外のようです