1

-90度回転するボタンがあります。回転したボタンが親と左揃えになっていません。

以下はXMLです

<RelativeLayout
        android:id="@+id/rl_showChapters"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:background="#000000"
        android:visibility="gone" >

        <Button
            android:id="@+id/btn_show"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:rotation="-90"
            android:text=" Show Chapters " />

    </RelativeLayout>

以下は出力です。 ここに画像の説明を入力

しかし、私はこのボタンを括弧で残して貼り付けたい.

4

2 に答える 2

3

これは古い質問であることは承知していますが、今後の参考のためにここに回答をドロップしたいと思います。

ボタンを親の右側に揃えたいという点を除いて、まったく同じ問題がありました。ここでの問題は、ビューを回転させるときに、特に明記しない限り、ピボットがその中心として選択されることです (その方法がわかりません)。私に代わって仕事をするための属性が見つかりませんでした。そこで、次の方法を実装しました。

private void transformShowPopupButton() {
    int w = btn_showPopup.getWidth(), h = btn_showPopup.getHeight();
    int diff = w/2-h/2;
    btn_showPopup.setRotation(270);
    btn_showPopup.setTranslationX(diff);
}

基本的に、このメソッドは、ボタンが親に揃うまでボタンを移動します。移動量は と の差に等しくなりますgetWidth()/2(getHeight()/2もちろん、マージンはなく、ボタンをその親に揃えました。マージン値を指定した場合は、それも加算する必要があります)。

ボタンをその親の左に揃えるには、 で移動する必要があります-diff

重要:ビューの高さと幅を取得できるようにするために、私の場合、内部btn_showPopupで呼び出すことはできません。そのため、内部で呼び出すとうまくいきます。transformShowPopupButton()onCreate()onWindowFocusChanged()

@Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    transformShowPopupButton();
}
于 2014-09-27T22:44:59.477 に答える
0

あなたはinに対してそれandroid:layout_centerVertical="true"を言っています。次のように変更しますButtonRelativeLayout

android:layout_centerHorizontal="true"

次に、ボタンはRelativeLayout

于 2013-06-26T07:32:29.210 に答える