简体   繁体   English

带箭头的矩形使用 XML

[英]Rectangle Shape with Arrow using XML

How to implement this shape of Departments header using shape and xml without 9-patch?如何使用形状实现Departments header 的shape和没有 9 补丁的xml

I mean rectangle with arrow on the left.我的意思是左边有箭头的矩形。

在此处输入图像描述

My code snippet:我的代码片段:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="1px"
        android:left="@dimen/edittext_border"
        android:right="@dimen/edittext_border"
        android:top="@dimen/edittext_border">
        <shape android:shape="rectangle">
            <stroke
                android:width="@dimen/edittext_border_width"
                android:color="@color/menu_divider" />

            <solid android:color="@color/background" />
            <corners android:radius="4dp" />


        </shape>
    </item>
</layer-list>

if you are looking for someting like this, try the following code.. 如果您正在寻找这样的东西,请尝试以下代码..

最终产出

  1. Make a xml arrow_shape in your drawable folder. 在drawable文件夹中创建一个xml arrow_shape。

      <?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="#c6802a" android:width="10dp"/> <solid android:color="#c6802a" /> </shape> </rotate> </item> </layer-list> 
  2. Make a xml rectangle_shape in your drawable folder. 在drawable文件夹中创建一个xml rectangle_shape。

     <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle"> <solid android:color="#B2E3FA" /> </shape> </item> 
  3. In your main xml file 在您的主xml文件中

     <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:gravity="center" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="com.example.stpl.myapplication.MainActivity"> <RelativeLayout android:id="@+id/arrow" android:layout_width="30dp" android:layout_height="30dp" android:background="@drawable/arrow_shape" android:rotation="270" /> <RelativeLayout android:id="@+id/rectangle" android:layout_width="150dp" android:layout_height="50dp" android:background="@drawable/rectangle_shape" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/tools" /> </LinearLayout> 

A solution with a gradient:具有梯度的解决方案:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

  <item android:width="2dp" android:height="2dp"
      android:top="4dp" android:left="3dp">
    <rotate android:fromDegrees="45"
        android:pivotX="0"
        android:pivotY="0">
      <shape>
        <solid android:color="#D83945"/>
      </shape>
    </rotate>
  </item>
  <item android:width="50dp" android:height="11dp" android:left="3dp">
    <shape>
      <gradient
          android:startColor="#D83945"
          android:endColor="#F9700C"
          />
      <corners
          android:radius="2dp"
          />
    </shape>
  </item>
</layer-list>

The final result is:最后的结果是:

带渐变的箭头形状

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM