高さ h/3、幅 3w/5 (w: 画面の幅、h: 画面の高さ) のレイアウトで、絶対中央に長方形のボックスを表示したい。解決策を見つけるのを手伝ってください、事前に感謝します。
質問する
2204 次
3 に答える
3
重みを使用して線形レイアウトを使用して調整できます。下にサンプルコードを貼り付けました。これがお役に立てば幸いです。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="@color/transparent"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:orientation="horizontal"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="5"
/>
<TextView
android:id="@+id/desiredbox"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="TextView"
android:layout_gravity="center"
android:background="@color/skyblueBackground"
android:layout_weight="1"
/>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="5"
/>
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
/>
于 2013-04-24T06:00:12.927 に答える
2
クラスを拡張するカスタム ビューを作成しView
、メソッドをオーバーライドしonDraw()
て目的の四角形を作成します。あなたが参照することができます: Android キャンバスは、一般的なアイデアを得るために四角形を描画します。
質問が次の場合: コンテナー内にビューを配置する方法 - 親ビューのコンストラクターにこれを追加します。
final ViewTreeObserver vto = this.getViewTreeObserver();
vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
// here, the dimensions of the parent are available
int containerHeight = instance.getHeight();
int containerWidth = instance.getWidth();
childView.setY(containerHeight/3);
childView.setX(containerWidth * 3 / 5);
instance.getViewTreeObserver().removeGlobalOnLayoutListener(this);
}
}
});
instance
コンテナビューへの参照です。
于 2013-04-24T05:46:01.177 に答える