【问题标题】:How to draw a rectangle inner inside end triangle shape in xml drawable android?如何在 xml drawable android 中绘制一个矩形内端三角形形状?
【发布时间】:2019-01-17 09:31:03
【问题描述】:

我想画一个像下面一样的形状(浅蓝色),这样我就可以把它作为 TextViews 的背景 -

很明显,如果我只需要画一个矩形,但在形状上我也想要一个内三角形。

如果有人试过这个,请帮助我。

谢谢

【问题讨论】:

    标签: android xml vector drawable shapes


    【解决方案1】:

    你也可以试试

    <vector xmlns:android="http://schemas.android.com/apk/res/android"
            android:width="100dp"
            android:height="50dp"
            android:viewportWidth="100.0"
            android:viewportHeight="100.0">
        <path
            android:fillColor="#8BC34A"
            android:pathData="M 0,0 L 100,0 90,50 100,100 0,100 z"/>
    </vector>
    

    和你的 TextView 为:

    <TextView
    android:id="@+id/text_id"
    android:layout_width="100dp"
    android:layout_height="25dp"
    android:layout_margin="@dimen/common_margin"
    android:background="@drawable/you_drawable_here"
    android:gravity="start|center"
    android:paddingEnd="20dp"
    android:text="your text here"
    android:textColor="@color/white"
    android:textSize="10sp"
    android:textStyle="bold"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />
    

    【讨论】:

    • 跟我需要的一样。但唯一的缺点是,添加长文本时高度会降低。
    【解决方案2】:

    您可以先创建 SVG,然后将其转换为矢量

    更新:

        <?xml version="1.0" encoding="utf-8"?>
    <vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:viewportWidth="640"
        android:viewportHeight="640"
        android:width="24dp"
        android:height="24dp">
        <path
            android:pathData="M526.63 383.78l-466.32 0 0 -234.7"
            android:fillColor="#3498DB" />
        <path
            android:pathData="M526.63 383.78L417.45 266.43 526.63 151.12 60.31 150"
            android:fillColor="#3498DB"/>
    </vector>
    

    【讨论】:

    • 它显示一条白色的对角线,我们可以删除它吗?
    【解决方案3】:

    试试这个可绘制文件并将其设置为所需视图的背景:

    Ribbon.xml

    <?xml version="1.0" encoding="utf-8"?>
    <vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:viewportWidth="640"
        android:viewportHeight="640"
        android:width="24dp"
        android:height="24dp">
        <path
            android:pathData="M526.63 383.78l-466.32 0 0 -234.7"
            android:fillColor="#3498DB" />
        <path
            android:pathData="M526.63 383.78L417.45 266.43 526.63 151.12 60.31 149.08"
            android:fillColor="#3498DB"/>
    </vector>
    

    【讨论】:

    • 但是我在将其设置为 textview 的背景时遇到了问题,这并不常见,因为我们使用简单的可绘制形状。
    【解决方案4】:

    试试这个代码

    <vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:height="100dp"
        android:width="100dp"
        android:viewportHeight="100"
        android:viewportWidth="100">
    
        <path
            android:name="dark_triangle"
            android:fillColor="#5ad0e6"
            android:pathData="M 10,0 L 0,100 100,100 z" />
    
        <path
            android:name="light_triangle"
            android:fillColor="#5ad0e6"
            android:pathData="M 0,0 L 100,0 0,100 z" />
    
    </vector>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多