在RelativeLayout内从角到角绘制对角线

时间:2018-01-16 12:13:52

标签: android css xml draw

我是Android开发的新手,我试图在我的黄色RelativeLayout中从左下角到右上角画一条线。 我添加了layer-list - diagonal_line

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:top="300dp"
    android:bottom="-300dp"
    android:left="0dp"
    android:right="-300dp">
    <rotate
        android:fromDegrees="-10"
        android:pivotX="0%"
        android:pivotY="100%" >
        <shape
            android:shape="line"
            android:top="1dip" >
            <stroke
                android:width="1dip"
                android:color="#000" />
        </shape>
    </rotate>
</item>

然后到styles

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

然后将其添加到我的RelativeLayout

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_height="match_parent"
style="@style/diagonalStyle"
android:background="#FFDC7F">

我的问题是,如果我添加了线条未显示的颜色而没有颜色,则显示该线条,但不在正确的位置。也许这个问题是重复的,但请保持温和,我不知道我做错了什么。

1 个答案:

答案 0 :(得分:0)

您应该使用VectorDrawable路径从左下角到右上角在黄色RelativeLayout内绘制线条。您的diagonal_line.xml应该是(假设线条颜色为蓝色#0000FF,线宽为4):

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:height="64dp"
        android:width="64dp"
        android:viewportHeight="600"
        android:viewportWidth="600" >

    <path
        android:name="diagonal_line"
        android:strokeColor="#0000FF"
        android:strokeWidth="4"
        android:pathData="M600, 0 l-600, 600z" />
</vector>

(绝对尺寸不重要,因为矢量将重新调整为RelativeLayout尺寸)。您的styles.xml应包含

部分
<style name="diagonalStyle">
    <item name="android:background">@drawable/diagonal_line</item>
</style>

正如您所写,如果您无法在backgroundTint文件中使用{your_layout}.xml,则应为android:background="#FFDC7F"设置纯色背景(Relativelayout)并放置& #34;虚设&#34; View上有diagonalStylestyle="@style/diagonalStyle")。这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<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:background="#FFDC7F"
    tools:context="{YOUR_CONTEXT}">

    <View
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        style="@style/diagonalStyle" />

</RelativeLayout>

结果,你应该给出类似的东西:

Diagonal stroked layout

更多路径教程here