Android - 使用 xml drawable 制作检查图标

Posted

技术标签:

【中文标题】Android - 使用 xml drawable 制作检查图标【英文标题】:Android - Make check icon using xml drawable 【发布时间】:2017-01-16 04:18:31 【问题描述】:

如何使用 xml drawable 制作这个形状?为这件事争吵了很长时间,但无法完成。

【问题讨论】:

你有考虑过使用 9patch 的图像吗?或者你为什么需要这个形状? 您还可以将图像转换为矢量绘图 你不能简单地用 drawable.xml 创建复选标记,使用图像或者编写你自己的逻辑。 我需要全屏显示,所以我认为我不会使用会增加我的 apk 大小的大图像 【参考方案1】:

这是您可以改进的模板:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:
        android:
        android:top="20dp">
        <rotate
            android:fromDegrees="45">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/holo_orange_dark"/>
            </shape>
        </rotate>
    </item>

    <item
        android:
        android:
        android:top="15dp"
        android:left="18dp">
        <rotate
            android:fromDegrees="-45">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/holo_orange_dark"/>
            </shape>
        </rotate>
    </item>

    <item
        android:
        android:>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/transparent"/>
        </shape>
    </item>
</layer-list>

【讨论】:

这是一个很好的答案,但我收到了这个警告属性高度仅用于 API 级别 23 及更高级别(当前最小值为 16)。小于 23 的 API 应该使用哪些属性。【参考方案2】:

2020 年解决方案:

对于现在正在寻找这个答案的任何人,您可以在材料网站上下载图标(https://material.io/resources/icons/?style=baseline)

对于 android,您甚至可以使用以下方法直接从 Android Studio 添加图标:

1 -> 左侧的“资源管理器” 2 -> 按“+”图标 3 -> 选择“矢量资源” 4 -> 那么你只需要选择正确的图标

或者你可以:

1 -> 右键单击​​ res/drawable 文件夹 2 -> 选择新建 > 矢量资产

【讨论】:

这是最好的解决方案!使用 AS 为您提供的内容。【参考方案3】:
<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item
            android:
            android:
            android:top="20dp">
        <rotate
            android:fromDegrees="45">
            <shape android:shape="rectangle">
                <solid android:color="@android:color/holo_orange_dark"/>
            </shape>
        </rotate>
    </item>
    <item
        android:
        android:
        android:top="15dp"
        android:left="13dp">
        <rotate
            android:fromDegrees="-45">
            <shape
                android:shape="rectangle">
                <solid android:color="@android:color/holo_orange_dark">
                </solid>
            </shape>
        </rotate>
    </item>
<item
    android:
    android:>
    <shape android:shape="rectangle">
        <solid android:color="@android:color/transparent"/>
    </shape>
</item>

【讨论】:

【参考方案4】:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:
    android:
    android:viewportWidth="24"
    android:viewportHeight="24"
    android:tint="#008F28"
    android:alpha="0.9">
    <path
        android:fillColor="#FF000000"
        android:pathData="M9,16.2L4.8,12l-1.4,1.4L9,19 21,7l-1.4,-1.4L9,16.2z"/>
</vector>

【讨论】:

以上是关于Android - 使用 xml drawable 制作检查图标的主要内容,如果未能解决你的问题,请参考以下文章

Android XML Drawable

Android:如何使用 XML drawable 创建精确的材料设计阴影

如何在android中使用xml drawable创建半圆形填充形状?

Android Drawable - Shape Drawable使用详解(附图)

Android基础学习-Drawable

Android Drawable:在 XML 文件中以百分比指定形状宽度?