我想在RelativeLayout
的右上角绘制一个三角形。
我使用以下代码创建了triangle.xml
:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<rotate
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="-40%"
android:pivotY="87%" >
<shape
android:shape="rectangle" >
<stroke android:color="@color/darkblue" android:width="10dp"/>
<solid
android:color="@color/blue" />
</shape>
</rotate>
</item>
</layer-list>
并且遵循了这篇文章:
https://looksok.wordpress.com/2013/08/24/android-triangle-arrow-defined-as-an-xml-shape/
问题是我使用三角形作为RelativeLayout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="7dp">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentStart="false"
android:layout_alignParentRight="false"
android:layout_marginTop="5dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:layout_marginTop="0dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/taskTitle"
android:text="title"
android:layout_gravity="left"
android:textSize="15sp"
android:textStyle="bold" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingBottom="5sp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="@string/standort"
android:id="@+id/textView23" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/taskLocation"
android:text="location"
android:textSize="12sp"
android:layout_marginLeft="3sp" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/textView22"
android:text="@string/objekt" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/taskObject"
android:text="object"
android:textSize="12sp"
android:layout_marginLeft="3sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tasklistDone"
android:layout_gravity="right"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginRight="8dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/taskImage"
android:adjustViewBounds="true"
android:maxHeight="60dp"
android:maxWidth="60dp"
android:minHeight="50dp"
android:minWidth="50dp"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_alignParentStart="true"
android:layout_marginLeft="10dp"
android:layout_centerVertical="true" />
<RelativeLayout
android:layout_width="20dp"
android:layout_height="20dp"
android:rotation="45"
android:background="@drawable/triangle"
android:layout_alignParentEnd="true">
</RelativeLayout>
</RelativeLayout>
</LinearLayout>
我需要做些什么才能使三角形位于角落?
答案 0 :(得分:0)
您的布局文件中有一些错误。所以我稍微改了一下......请在此代码中更改您正在使用的资源..
xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="wrap_content"
android:layout_height="wrap_content">
<RelativeLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginBottom="7dp">
<LinearLayout
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="false"
android:layout_marginTop="5dp">
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="80dp"
android:layout_marginTop="0dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceMedium"
android:id="@+id/taskTitle"
android:text="title"
android:layout_gravity="left"
android:textSize="15sp"
android:textStyle="bold" />
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:paddingBottom="5sp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Text"
android:id="@+id/textView23" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/taskLocation"
android:text="location"
android:textSize="12sp"
android:layout_marginLeft="3sp" />
</LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/textView22"
android:text="Te" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:id="@+id/Tex"
android:text="object"
android:textSize="12sp"
android:layout_marginLeft="3sp" />
</LinearLayout>
</LinearLayout>
</LinearLayout>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tasklistDone"
android:layout_gravity="right"
android:layout_centerVertical="true"
android:layout_marginRight="8dp" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/taskImage"
android:adjustViewBounds="true"
android:maxHeight="60dp"
android:maxWidth="60dp"
android:minHeight="50dp"
android:minWidth="50dp"
android:layout_alignParentLeft="false"
android:layout_alignParentTop="false"
android:layout_alignParentStart="true"
android:layout_marginLeft="10dp"
android:layout_centerVertical="true" />
<RelativeLayout
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:background="@drawable/triangle">
</RelativeLayout>
</RelativeLayout>
triange.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:pivotX="45%"
android:pivotY="45%"
android:toDegrees="0" >
<shape android:shape="rectangle" >
<stroke
android:width="10dp"
android:color="@android:color/darker_gray" />
<solid android:color="@android:color/darker_gray" />
</shape>
</rotate>
</item>
<item>
<rotate
android:fromDegrees="45"
android:pivotX="45%"
android:pivotY="45%"
android:toDegrees="45" >
<shape android:shape="rectangle" >
<stroke
android:width="10dp"
android:color="@android:color/white" />
<solid android:color="@android:color/white" />
</shape>
</rotate>
</item>
<item>
<rotate
android:fromDegrees="-30"
android:pivotX="20%"
android:pivotY="95%"
android:toDegrees="0" >
<shape android:shape="rectangle" >
<stroke
android:width="10dp"
android:color="@android:color/white" />
<solid android:color="@android:color/white" />
</shape>
</rotate>
</item>
<item>
<rotate
android:fromDegrees="-45"
android:pivotX="90%"
android:pivotY="45%"
android:toDegrees="0" >
<shape android:shape="rectangle" >
<stroke
android:width="10dp"
android:color="@android:color/white" />
<solid android:color="@android:color/white" />
</shape>
</rotate>
</item>
输出: