Android пользовательское векторное масштабирование - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь создать пользовательскую фигуру для использования в качестве фона для моего меню.Проблема, которую я испытываю, заключается в том, что я не могу получить ту форму, которую хочу.В данный момент я создаю фигуру в виде svg в Adobe Illustrator, а затем преобразую в XML-файл, но он не дает желаемого эффекта.Как получить вектор, который можно масштабировать в зависимости от его родителя (match_parent) и содержимого (wrap_content)?

menu_shape.xml Проблема, с которой я столкнулся, заключается в том, что эта форма не совсем отзывчива, так как она по существу сжимается для соответствия области просмотра и, следовательно, ведет себя крайне по-разному в зависимости от размера экрана.

<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
    android:viewportWidth="597.28"
    android:viewportHeight="542.16"
    android:width="597.28dp"
    android:height="542.16dp">
    <path
        android:pathData="M0.5 303.39V0.5H596.78V370.39S310.5 797.13 0.5 303.39Z"
        android:fillColor="#A92324"
        android:strokeColor="#231F20"
        android:strokeWidth="1"
        android:strokeMiterLimit="10" />
</vector>

Текущий результат:

Желаемый результат: Желаемый результат - это массивный круг, слегка смещенный вправо

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Попробуйте сформировать XML-код

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <shape xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="rectangle">

                <padding android:left="-100dp"
                    android:top="-100dp"
                    android:right="-100dp"/>
            </shape>
        </item>
        <item>
            <shape xmlns:android="http://schemas.android.com/apk/res/android"
                android:shape="oval">
                <solid
                    android:color="#712EF1" />
            </shape>
        </item>
    </layer-list>
0 голосов
/ 28 февраля 2019

Попробуйте это

<vector xmlns:android="http://schemas.android.com/apk/res/android" xmlns:aapt="http://schemas.android.com/aapt"
        android:viewportWidth="597.28"
        android:viewportHeight="542.16"
        android:width="597.28dp"
        android:height="542.16dp">
  <path
          android:pathData="M0.5 302.39V0.5H596.7V374.39S310.5 501.13 0.5 303.39Z"
          android:fillColor="#A92324"
          android:strokeColor="#231F20"
          android:strokeWidth="1"
          android:strokeMiterLimit="10" />
</vector>
...