J'essaie de tracer une diagonale dans une application Android avec XML, mais cela ne fonctionne pas. Il dessine simplement une ligne horizontale.
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>
Vous n'avez vraiment besoin que d'un changement de numéro pour que cela fonctionne. Il suffit de changer le deDegrees à 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>
La rotation drawable http://developer.Android.com/reference/Android/graphics/drawable/RotateDrawable.html
utilise réellement le format Property Animation http://developer.Android.com/guide/topics/resources/animation-resource.html
Alors que vous créez une ligne diagonale non-animante, vous voulez qu’elle commence à 45 degrés et se termine également à 45 degrés. Donc, les fixer à 45 est la norme.
Vous pouvez essayer ceci: Créez une mise en page "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"/>
Créez une forme dessinable "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>