web-dev-qa-db-ja.com

Android XMLで行を回転させる方法は?

AndroidアプリでXMLを使用して斜めの線を描画しようとしていますが、機能していません。単に水平線を描画します。

main.xml

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:paddingBottom="@dimen/activity_vertical_margin"
    Android:paddingLeft="@dimen/activity_horizontal_margin"
    Android:paddingRight="@dimen/activity_horizontal_margin"
    Android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".TestActivity" >

    <RelativeLayout
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentTop="true" 
        style="@style/diagonalStyle">
    </RelativeLayout>

</RelativeLayout>

styles.xml

<resources xmlns:Android="http://schemas.Android.com/apk/res/Android">

    <style name="diagonalStyle">
        <item name="Android:background">@drawable/background</item>
    </style>

</resources>

background.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

    <item>
        <rotate
            Android:fromDegrees="0"
            Android:toDegrees="45"
            Android:pivotX="50%"
            Android:pivotY="50%" >
            <shape
                Android:shape="line"
                Android:top="1dip" >
                <stroke
                    Android:width="1dip"
                    Android:color="#FF0000" />
            </shape>
        </rotate>
    </item>

</layer-list>
18
Don Rhummy

実際に機能させるには、番号を1つ変更するだけで済みます。 fromDegreesを45に変更するだけです。

<item>
    <rotate
            Android:fromDegrees="45"
            Android:toDegrees="45"
            Android:pivotX="50%"
            Android:pivotY="50%" >
        <shape
                Android:shape="line"
                Android:top="1dip" >
            <stroke
                    Android:width="1dip"
                    Android:color="#FF0000" />
        </shape>
    </rotate>
</item>

回転可能なドローアブル http://developer.Android.com/reference/Android/graphics/drawable/RotateDrawable.html

実際にプロパティアニメーション形式を使用します http://developer.Android.com/guide/topics/resources/animation-resource.html

アニメートしない対角線を作成するのに対して、45度から始めて、45度で終わるようにします。したがって、両方を45に設定するのが標準です。

42
HalR

これを試すことができます:レイアウト「divider.xml」を作成します

<?xml version="1.0" encoding="utf-8"?>
<View Android:layout_width="match_parent"
    xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_height="@dimen/one_dp"
    Android:layout_weight=".1"
    Android:background="@drawable/transparent_divider"
    Android:padding="5dp"
    Android:rotation="180"/>

ドローアブルシェイプ「transparent_divider.xml」を作成します。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:shape="rectangle">
    <size Android:height="1dp" />
    <solid Android:color="#808080" />
</shape>
1
Maddy