【问题标题】:How to create shape like below image using xml or canvas in android?如何在android中使用xml或canvas创建如下图的形状?
【发布时间】:2020-04-09 06:04:28
【问题描述】:

我尝试使用珊瑚绘图或 Photoshop 制作背景,但无法正常工作。

我应该如何绘制这样的形状?不要期望完整的代码,只要给我想法或指出正确的方向即可。

使用形状制作矩形很容易,但是如何添加右下角的小矩形并将它们制成一个形状,而且我想制作九个补丁图像,因为不同的屏幕尺寸问题。

【问题讨论】:

    标签: android xml android-studio android-custom-view custom-view


    【解决方案1】:

    试试这个..我用https://www.autotracer.org/将png转换为svg,然后https://svg2vector.com/将svg转换为矢量。

    我建议将汉堡图像作为带有圆角的 CardView 的图像背景,并使用 ConstraintLayout 将 Tab Badge drawable 和 TextView 对齐

    底部标签徽章可绘制

    <vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
        android:viewportWidth="129"
        android:viewportHeight="45"
        android:width="129dp"
        android:height="45dp">
    <path
            android:pathData="M0 0L0 44L7 44L9 44L10 44L12 44L13 43.9722L14 43.8889L15.9722 43.2778L17.75 41.8889L19.0833 40L19.9722 38L20.5833 36L21 34L21.3889 32L21.8611 30L22.1389 29L22.3611 28L22.6389 27L22.8611 26L23.4722 24L24.5 22L25.25 21.0278L26.0833 20.1111L27.0278 19.3056L29 18.1111L30 17.7222L31 17.4167L33 17.0833L34 17.0278L35 17L37 17L38 17L41 17L50 17L82 17L93 17L96 17L98 17L100 17.0833L101 17.25L102 17.5L103 17.9444L104.917 19.25L106.5 21.0278L107.528 23L108.139 25L108.361 26L108.611 27L108.944 29L109.056 30L109.389 32L109.611 33L110 35L110.417 37L110.694 38L111.417 40L112.5 41.8889L114.083 43.2778L116 43.8889L118 44L119 44L120 44L122 44L129 44L129 0L0 0z"
            android:fillColor="#00FFFFFF" />
    <path
            android:pathData="M30 17L30.7778 17.7222L31.3056 17.75L32.1111 17.9444L33.0278 17.9722L35 18L36 18L38 18L51 18L101 18L100.222 17.2778L99.6944 17.25L98.8889 17.0556L97.9722 17.0278L96 17L95 17L93 17L80 17L30 17z"
            android:fillColor="#00FFFFFF" />
    <path
            android:pathData="M101.667 17.3333L102 17.6667L102.333 17.6667L102.333 17.3333L101.667 17.3333z"
            android:fillColor="#00FFFFFF" />
    <path
            android:pathData="M26 19L26.7778 19.6389L27.25 19.5278L28.0556 19.5278L30 19L29.2222 18.3056L28.75 18.3056L27.4722 18.3056L26 19z"
            android:fillColor="#00FFFFFF" />
    <path
            android:pathData="M17 45L113 45L112.306 43.5L111.944 42.9444L110.917 41L110.472 40L110.167 39L109.639 37L109.389 36L109.194 35L108.806 33L108.611 32L108.389 31L108.056 29L107.944 28L107.583 26L107.306 25L106.583 23L106.083 22L104.75 20.1111L103.917 19.3333L102 18.3333L101 18.1111L100 18.0278L99 18L97 18L96 18L93 18L86 18L44 18L39 18L37 18L36 18L34 18L33 18.0278L32 18.0833L30 18.4722L28.0833 19.2778L27.25 19.8611L26.4722 20.4722L25.2778 22.0833L24.3889 24L24.0278 25L23.3889 27L23.1389 28L22.8611 29L22.3889 31L22.1944 32L22 33L21.5833 35L21 37L20.6667 38L19.8889 40L18.8056 41.9444L18.1944 42.9444L17.75 43.5L17 45z"
            android:fillColor="#FFFFFF" />
    <path
            android:pathData="M103 18L103.75 19.5L104.222 20.0556L105.528 22L106.056 22.9444L106.722 24.5L107 26L107.722 25.2222L107.722 24.6944L107.861 23.8889L107.5 22L106.5 20.1111L105.806 19.3333L104.472 18.3611L103 18M25 20L24.0278 21.5L23.4444 23.0556L23.0833 24.9444L23 27L23.8056 26.2222L24 25.6944L24.4167 24.8889L25.1389 23.0278L25.4722 22.1111L25.5 21.3056L25.6389 20.7778L25 20M108 26L108 32L108.722 31.2222L108.75 30.6944L108.944 29.8889L108.944 28.1111L108.75 27.3056L108.722 26.7778L108 26M22 27L22 31L22.7222 30.2222L22.8889 29L22.7222 28.2778L22.7222 27.7778L22 27M21 31L21 36L21.7222 35.2222L21.75 34.6944L21.9167 33.0833L21.75 32.3056L21.7222 31.7778L21 31M109 32L109 37L109.722 36.2222L109.75 35.6944L109.917 34.0833L109.75 33.3056L109.722 32.7778L109 32M20 36L20 39L20.6944 38.25L20.6944 37.1944L20.6944 36.75L20 36M110 37L110.028 38.5L110.25 40.0556L110.5 41L110.944 41.9722L111.5 42.8889L113.083 44.2778L115 44.8889L117 45L118 45L119 45L122 45L129 45L128.222 44.2778L127.694 44.25L126.889 44.0556L125 44L124 44L121 44L120 44L118 43.9722L117 43.8889L116 43.6667L115.028 43.2778L114.083 42.6667L112.5 40.9722L111.444 39.1111L111 38.3056L110.806 37.7778L110 37M19 39L18.2222 40.5L17.6944 41.0278L16.8889 41.9444L15 43.2778L13 43.8889L12 43.9722L11 44L9 44L8 44L6 44L0 44L0.777778 44.7222L1.30556 44.75L2.11111 44.9444L3.02778 44.9722L5 45L7 45L10 45L11 45L13 45L14 44.9722L16 44.6667L17.8889 43.6667L18.6667 42.8889L19.25 42L19.6111 41.1111L19.6944 39.7778L19 39z"
            android:fillColor="#00FFFFFF" />
    

    【讨论】:

    • 感谢您分享您的专业知识。
    • 请检查下面的布局流程,我是如何做到这一点的:
    • 看起来不行,约束值在哪里?还是有效?
    • 它有效,由于字符限制,我从上面的代码中删除了剩余的属性。
    猜你喜欢
    • 2017-07-27
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 2016-08-14
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    相关资源
    最近更新 更多