Створення форми трикутника за допомогою визначення xml?


133

Чи можна вказати форму трикутника у файлі xml?

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="triangle">
  <stroke android:width="1dip" android:color="#FFF" />
  <solid android:color="#FFF" />
</shape>

ми можемо це зробити за допомогою форми доріжки чи чогось? Мені просто потрібен рівносторонній трикутник.

Дякую


Ви знайшли рішення? У мене така ж проблема.
Майк Бевз

Здається, це працювало для хлопця, який написав настанови (та кількох коментаторів): Android: Намалюйте рівносторонні фігури трикутника на полотні
Дігум

Відповіді:


166

У цій публікації я описую, як це зробити. І ось трикутник, що визначає XML:

<?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="@color/transparent" android:width="10dp"/>
                <solid
                    android:color="@color/your_color_here" />
            </shape>
        </rotate>
    </item>
</layer-list>

Зверніться до моєї публікації, якщо щось незрозуміле або вам потрібно пояснити, як воно побудовано. Це повернутий прямокутник вирізу :) Це дуже розумне і добре працює рішення.

EDIT: щоб створити стрілку, що вказує на зразок -> use:

...
android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="13%"
android:pivotY="-40%" >
...

І щоб створити стрілку, що вказує як <- use:

android:fromDegrees="45"
android:toDegrees="45"
android:pivotX="87%"
android:pivotY="140%" >

3
Вибачте .. але рівносторонній трикутник ніколи не може бути прямокутним трикутником.
lilbyrdie

3
@JacekMilewski - велике спасибі! Хочете поділитися своїми параметрами pivotX / pivotY для стрілки вниз? Зліва? Правильно?
JohnnyLambada

2
Щоб обернути його, я зміню обертання у файлі xml-макета, а не у визначенні самого трикутника.
Яцек Мілевський

1
-1. Це не добре. Фактичні розміри подання більше, ніж на екрані. Це повинно було обернути межі.
Яванатор

1
Чи можете ви поділитися, як ви отримали свої значення forDegrees, toDegrees, pivotX та pivotY? У мене є випадок використання, коли неможливо змінити обертання у файлі макета.
Патрік Бренан

82
<TextView 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="▼"/>

Ви можете отримати тут більше можливостей.


3
Як ви ставите це значення в xml?
користувач531069

2
Скопіюйте цей TextView та вставте його у свій xml
Elhanan Mishraky

6
@ user531069: помістіть це на своїх strings.xml:<string name="bottom_arrow">&#9660;</string>

1
Хочу різну стрілку від посилання, копіюю та вставляю & # 129032; як текст, він показує якийсь невідомий символ. ?
М. Усман Хан

2
Це рішення створює нову проблему з обробкою шрифтів у текстовому режимі.
Салман Хаквані

59

Ви можете використовувати vectorдля створення подібного трикутника

ic_triangle_right.xml

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="24dp"
        android:height="24dp"
        android:viewportWidth="24.0"
        android:viewportHeight="24.0">
    <path
        android:pathData="M0,12l0,12 11.5,-5.7c6.3,-3.2 11.5,-6 11.5,-6.3 0,-0.3 -5.2,-3.1 -11.5,-6.3l-11.5,-5.7 0,12z"
        android:strokeColor="#00000000"
        android:fillColor="#000000"/>
</vector>

Потім використовуйте його як

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/ic_triangle_right"
    />

Для зміни кольору та напрямку використовуйте android:tintтаandroid:rotation

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:srcCompat="@drawable/ic_triangle_right"
    android:rotation="180" // change direction
    android:tint="#00f" // change color
    />

Результат

введіть тут опис зображення

Для зміни форми вектора ви можете змінити ширину / висоту вектора. Приклад зміни ширини на 10dp

<vector 
        android:width="10dp"
        android:height="24dp"
        >
       ...
</vector>

введіть тут опис зображення


дякую, я не знаю, як працюють ці вектори. Мені потрібен був результат
Хоссейн Шахдуст

як можна збільшити і зменшити розмір цих трикутників? Вказавши висоту та ширину, це не працює
Aayushi

46

Можна використовувати векторні малюнки .

Якщо ваш мінімальний API нижче 21, Android Studio автоматично створює растрові зображення PNG для цих нижчих версій під час створення (див. Vector Asset Studio ). Якщо ви користуєтеся бібліотекою підтримки, Android навіть керує "реальними векторами" аж до API 7 (докладніше про це в оновленні цієї публікації внизу).

Червоним вгору вказівним трикутником буде:

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="100dp"
    android:width="100dp"
    android:viewportHeight="100"
    android:viewportWidth="100" >
    <group
        android:name="triableGroup">
        <path
            android:name="triangle"
            android:fillColor="#FF0000"
            android:pathData="m 50,0 l 50,100 -100,0 z" />
    </group>
</vector>

Додайте його до свого макета і не забудьте встановити clipChildren = "false", якщо повернути трикутник.

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:clipChildren="false">

    <ImageView
        android:layout_width="130dp"
        android:layout_height="100dp"
        android:rotation="0"
        android:layout_centerInParent="true"
        android:background="@drawable/triangle"/>

</RelativeLayout>

введіть тут опис зображення

Змініть розмір (ширину / висоту) трикутника, встановивши атрибути layout layout_width / layout_height. Таким чином, ви також можете отримати елатеральний трикутник, якщо ви зробите математику правильно.

ОНОВЛЕННЯ 25.11.2017

Якщо ви використовуєте бібліотеку підтримки, ви можете використовувати реальні вектори (замість створення растрових зображень) аж до API 7 . Просто додайте:

vectorDrawables.useSupportLibrary = true

зробіть своє defaultConfigв build.gradle модуля.

Потім встановіть вектор (xml), який можна малювати так:

<ImageView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    app:srcCompat="@drawable/triangle" />

Все дуже добре зафіксовано на сторінці Studio Asset Studio .

Починаючи з цієї функції, я працюю повністю без растрових зображень з точки зору піктограм. Це також значно зменшує розмір APK.


1
опублікуйте посилання, і хтось завантажить його за вас :-)
Габріель Оширо

1
+1 vectorDrawables.useSupportLibrary = trueмає додаткову перевагу, що ви можете використовувати кольори, визначені в colors.xml, оскільки бітові карти створюються під час збирання (коли визначені кольори недоступні).
Роб

39

Я б точно вирішив застосувати Погляд у цьому випадку:

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.util.AttributeSet;
import android.view.View;

public class TriangleShapeView extends View {

    public TriangleShapeView(Context context) {
        super(context);
    }

    public TriangleShapeView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }

    public TriangleShapeView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);

        int w = getWidth() / 2;

        Path path = new Path();
        path.moveTo( w, 0);
        path.lineTo( 2 * w , 0);
        path.lineTo( 2 * w , w);
        path.lineTo( w , 0);
        path.close();

        Paint p = new Paint();
        p.setColor( Color.RED );

        canvas.drawPath(path, p);
    }
}

Скористайтеся ним у своїх макетах так:

<TriangleShapeView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#ff487fff">
</TriangleShapeView>

Використання цієї реалізації дасть такий результат:

введіть тут опис зображення


<com.your.path.to.view.TriangleShapeView ... />
працював

це чудово. Як я можу змінити колір трикутника. скажімо, початковий колір сірий, але змінюється на червоний на OnTouch або onClick?
Фшамрі

Це набагато краще, ніж хак в xml
dorsz

@Peter Привіт. чи можете ви допомогти мені з невеликим поліпшенням? Мені потрібен верхній правий кут, щоб він був закругленим. як я можу досягти цього?
Бартеріо

1
Як би я додавав текст всередині трикутника?
Сакібой

38

Рішення Яцека Milewski працює для мене , і, грунтуючись на його рішенні, якщо вам потрібно , і інвертування трикутника ви можете використовувати це:

<?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="135%" 
            android:pivotY="15%">
            <shape android:shape="rectangle">    
                <solid android:color="@color/aquamarine" />
            </shape>
        </rotate>
    </item>
</layer-list>

-1 Таким чином ви не можете отримати рівносторонній трикутник. І в будь-якому випадку, у нього є багато потенційних проблем, тобто. stackoverflow.com/questions/20805826 / ...
j_kubik


11

Чи можу я допомогти вам без використання XML?


Просто,

Спеціальний макет (фрагмент):

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.Path;
import android.graphics.Point;
import android.util.AttributeSet;
import android.view.View;

public class Slice extends View {

    Paint mPaint;

    Path mPath;

    public enum Direction {
        NORTH, SOUTH, EAST, WEST
    }

    public Slice(Context context) {
        super(context);
        create();
    }

    public Slice(Context context, AttributeSet attrs) {
        super(context, attrs);
        create();
    }

    public void setColor(int color) {
        mPaint.setColor(color);
        invalidate();
    }

    private void create() {
        mPaint = new Paint();
        mPaint.setStyle(Style.FILL);
        mPaint.setColor(Color.RED);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        mPath = calculate(Direction.SOUTH);
        canvas.drawPath(mPath, mPaint);
    }

    private Path calculate(Direction direction) {
        Point p1 = new Point();
        p1.x = 0;
        p1.y = 0;

        Point p2 = null, p3 = null;

        int width = getWidth();

        if (direction == Direction.NORTH) {
            p2 = new Point(p1.x + width, p1.y);
            p3 = new Point(p1.x + (width / 2), p1.y - width);
        } else if (direction == Direction.SOUTH) {
            p2 = new Point(p1.x + width, p1.y);
            p3 = new Point(p1.x + (width / 2), p1.y + width);
        } else if (direction == Direction.EAST) {
            p2 = new Point(p1.x, p1.y + width);
            p3 = new Point(p1.x - width, p1.y + (width / 2));
        } else if (direction == Direction.WEST) {
            p2 = new Point(p1.x, p1.y + width);
            p3 = new Point(p1.x + width, p1.y + (width / 2));
        }

        Path path = new Path();
        path.moveTo(p1.x, p1.y);
        path.lineTo(p2.x, p2.y);
        path.lineTo(p3.x, p3.y);

        return path;
    }
}

Ваша діяльність (приклад):

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;

public class Layout extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Slice mySlice = new Slice(getApplicationContext());
        mySlice.setBackgroundColor(Color.WHITE);
        setContentView(mySlice, new LinearLayout.LayoutParams(
                LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
    }
}

Приклад роботи:

введіть тут опис зображення


Ще одна абсолютно проста Calculateфункція, яка може вас зацікавити ..

private Path Calculate(Point A, Point B, Point C) {
    Path Pencil = new Path();
    Pencil.moveTo(A.x, A.y);
    Pencil.lineTo(B.x, B.y);
    Pencil.lineTo(C.x, C.y);
    return Pencil;
}

11
+1 Так, ви можете. І дякую тобі Окрім ОП, є інші люди, які шукають рішення, які не просять спеціально для XML - як я.
johndodo

1
onDraw не буде викликатися в класах, що походять від ViewGroup, не є типовим. Вам потрібно або ввімкнути малювання setWillNotDraw (false), або успадкувати від View.
Благо

11

Використання векторного малювання:

<vector xmlns:android="http://schemas.android.com/apk/res/android"
   android:width="24dp"
   android:height="24dp"
   android:viewportWidth="24.0"
   android:viewportHeight="24.0">
   <path
        android:pathData="M0,0 L24,0 L0,24 z"
        android:strokeColor="@color/color"
        android:fillColor="@color/color"/>
</vector>

введіть тут опис зображення


Використання Lі zв кінці виправлене мою проблему, дякую!
oxied

6

Для тих, хто хоче стрілку правильного трикутника, перейдіть сюди:

КРОК 1: Створіть XML-файл, що витягується, скопіюйте та вставте наступний XML-вміст у свій XML, що витягується. (Будь ласка, повідомляйте, що ви можете використовувати будь-яке ім'я для вашого XML-файлу, що малюється. У моєму випадку я називаю його "v_right_arrow")

<?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="15%"
            android:pivotY="-36%" >
            <shape
                android:shape="rectangle"  >
                <stroke android:color="@android:color/transparent" android:width="1dp"/>
                <solid
                    android:color="#000000"  />
            </shape>
        </rotate>
    </item>
</layer-list>

КРОК 2: У XML вашого макета створіть представлення та зв’яжіть його фон із малюваним XML, який ви тільки що створили в КРОК 1 . У моєму випадку я пов'язую v_right_arrow до фонового властивості мого перегляду.

<View
    android:layout_width="200dp"
    android:layout_height="200dp"
    android:background="@drawable/v_right_arrow">
</View>

Вибірка зразка:

введіть тут опис зображення

Сподіваюся, це допомагає, удачі!


6

Ви можете додати наступний трикутник у фоновому режимі, використовуючи наступний xml

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="100dp"
    android:width="100dp"
    android:viewportHeight="100"
    android:viewportWidth="100" >
    <group
        android:name="triableGroup">
        <path
            android:name="triangle"
            android:fillColor="#848af8"
            android:pathData="M 0,20 L 0,0 L 100,0 L 100,20 L 54,55  l -1,0.6  l -1,0.4  l -1,0.2  l -1,0   l -1,-0  l -1,-0.2  l -1,-0.4  l -1,-0.6    L 46,55   L 0,20 -100,-100 Z" />
    </group>
</vector>

Вся логіка налаштування дизайну xml є в pathData. Розгляньте угорі зліва як (0,0) та розробіть макет відповідно до вашої вимоги. Перевірте цю відповідь.


4
<?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="@android:color/transparent" android:width="0dp"/>
                <solid
                    android:color="#fff" />
            </shape>
        </rotate>
    </item>
</layer-list>

4
 <layer-list xmlns:android="http://schemas.android.com/apk/res/android">
        <item>
            <rotate
                android:fromDegrees="45"
                android:pivotX="135%"
                android:pivotY="1%"
                android:toDegrees="45">
                <shape android:shape="rectangle">
                    <stroke
                        android:width="-60dp"
                        android:color="@android:color/transparent" />
                    <solid android:color="@color/orange" />
                </shape>
            </rotate>
        </item>
    </layer-list>

3

Я ніколи цього не робив, але з того, що я розумію, ви можете використовувати клас PathShape: http://developer.android.com/reference/android/graphics/dravable/shapes/PathShape.html


2
Як використовувати форму шляху в XML?
Себастьян Рот

Це було корисно для пошуку потрібної частини для використання, але не пропонує майже достатньо пояснень щодо її використання. Спасибі все одно.
Наварр

Вибачте Себастьян та Наварр ... У своїй відповіді я зазначив, що ніколи не використовував його, тому не знаю, як і як користуватися ним. Це просто схоже на клас, який би виконав роботу. Я згоден, хоча документації на це недостатньо.
Джастін

3
PathShape, схоже, не має асоційованого синтаксису XML. Тег XML Shape підтримує лише прямокутник, овал, лінію та кільце. developer.android.com/guide/topics/resources/…
Nilzor

3

Я спізнився на вечірку, і я зіткнувся з тією ж проблемою, і Google вказав мені на цю нитку StackOverflow як перший результат.

Я спробував використати xml спосіб додати трикутник і з’ясувати проблему, що форма трикутника за допомогою підходу xml займає більше місця, ніж здається.

Дивіться знімок екрана з встановленими межами макета

введіть тут опис зображення

Таким чином, створили цей власний клас перегляду, який може малювати Трикутник будь-якого з таких типів: -

  1. вгору вказуючи
  2. вниз вказуючи
  3. зліва вказує &
  4. праворуч вказуючи

так як

package com.hiteshsahu.materialupvotewidget;    
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.support.annotation.NonNull;
import android.util.AttributeSet;
import android.view.View;

public class TriangleShapeView extends View {

    private int colorCode = Color.DKGRAY;

    public int getColorCode() {
        return colorCode;
    }

    public void setColorCode(int colorCode) {
        this.colorCode = colorCode;
    }

    public TriangleShapeView(Context context) {
        super(context);
        if (isInEditMode())
            return;
    }

    public TriangleShapeView(Context context, AttributeSet attrs) {
        super(context, attrs);
        if (isInEditMode())
            return;
    }

    public TriangleShapeView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);

        if (isInEditMode())
            return;
    }


    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        int w = getWidth() / 2;
        int h = getHeight() / 2;

        //Choose what type of triangle you want here
        Path path = getLeftTriangle(w, h);

        path.close();
        Paint p = new Paint();
        p.setColor(colorCode);
        p.setAntiAlias(true);

        canvas.drawPath(path, p);
    }

    @NonNull
    /**
     * Return Path for down facing triangle
     */
    private Path getInvertedTriangle(int w, int h) {
        Path path = new Path();
        path.moveTo(0, 0);
        path.lineTo(w, 2 * h);
        path.lineTo(2 * w, 0);
        path.lineTo(0, 0);
        return path;
    }

    @NonNull
    /**
     * Return Path for Up facing triangle
     */
    private Path getUpTriangle(int w, int h) {
        Path path = new Path();
        path.moveTo(0, 2 * h);
        path.lineTo(w, 0);
        path.lineTo(2 * w, 2 * h);
        path.lineTo(0, 2 * h);
        return path;
    }

    @NonNull
    /**
     * Return Path for Right pointing triangle
     */
    private Path getRightTriangle(int w, int h) {
        Path path = new Path();
        path.moveTo(0, 0);
        path.lineTo(2 * w, h);
        path.lineTo(0, 2 * h);
        path.lineTo(0, 0);
        return path;
    }

    @NonNull
    /**
     * Return Path for Left pointing triangle
     */
    private Path getLeftTriangle(int w, int h) {
        Path path = new Path();
        path.moveTo(2 * w, 0);
        path.lineTo(0, h);
        path.lineTo(2 * w, 2 * h);
        path.lineTo(2 * w, 0);
        return path;
    }
}

Ви можете просто використовувати його у форматі xml, як це

 <com.hiteshsahu.materialupvote.TriangleShapeView
            android:layout_width="50dp"
            android:layout_height="50dp"></com.hiteshsahu.materialupvote.TriangleShapeView>

Я знаю, що ОП хочу рішення у форматі xml, але, як я зазначив, проблема з xml підходом. Сподіваюся, це може комусь допомогти.


2

Використовуючи рішення Яцека Мілевського, я зробив орієнтований кут вниз з прозорим фоном.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <rotate
            android:fromDegrees="135"
            android:pivotX="65%"
            android:pivotY="20%"
            android:toDegrees="135"
            >
            <shape android:shape="rectangle">
                <stroke
                    android:width="1dp"
                    android:color="@color/blue"
                    />
                <solid android:color="@color/transparent" />
            </shape>
        </rotate>
    </item>
</layer-list>

Ви можете змінити android:pivotXі android:pivotYзмістити кут.

Використання:

<ImageView
    android:layout_width="10dp"
    android:layout_height="10dp"
    android:src="@drawable/ic_angle_down"
    />

введіть тут опис зображення

Параметри залежать від розміру зображення. Наприклад, якщо ImageViewрозмір 100dp * 80dp, ви повинні використовувати ці константи:

<rotate
    android:fromDegrees="135"
    android:pivotX="64.5%"
    android:pivotY="19%"
    android:toDegrees="135"
    >

введіть тут опис зображення


2

Я намагаюся створити зображення трикутника, як кнопка "назад" на панелі навігації Android, але я не знайшов жодного рішення.

Тепер я знайшов рішення із собою і хотів би ним поділитися.

трикутник навігаційної панелі Android

використовувати xml нижче

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:bottom="20dp"
    android:left="480dp"
    android:right="60dp"
    android:top="20dp">
    <shape>
        <size android:width="60dp" />
        <corners android:radius="80dp"/>
        <solid android:color="#AAA" />
    </shape>
</item>
<item
    android:bottom="480dp"
    android:right="70dp"
    android:top="20dp">
    <rotate
        android:fromDegrees="-28"
        android:pivotX="96%"
        android:pivotY="50%"
        android:toDegrees="-20">
        <shape>
            <corners android:radius="80dp"/>
            <size android:height="60dp" />
            <solid android:color="#AAA" />
        </shape>
    </rotate>
</item>

<item
    android:bottom="20dp"
    android:right="70dp"
    android:top="480dp">
    <rotate
        android:fromDegrees="28"
        android:pivotX="96%"
        android:pivotY="50%"
        android:toDegrees="-20">
        <shape>
            <corners android:radius="80dp"/>
            <size android:height="60dp" />
            <solid android:color="#AAA" />
        </shape>
    </rotate>
</item>


0
  <LinearLayout
        android:id="@+id/ly_fill_color_shape"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:layout_gravity="center"
        android:background="@drawable/shape_triangle"
        android:gravity="center"
        android:orientation="horizontal" >
    </LinearLayout>

<item>
    <rotate
        android:fromDegrees="45"
        android:pivotX="-15%"
        android:pivotY="77%"
        android:toDegrees="45" >
        <shape android:shape="rectangle" >
            <stroke
                android:width="2dp"
                android:color="@color/black_color" />

            <solid android:color="@color/white" />

            <padding android:left="1dp" />
        </shape>
    </rotate>
</item>
<item android:top="200dp">
    <shape android:shape="line" >
        <stroke
            android:width="1dp"
            android:color="@color/black_color" />

        <solid android:color="@color/white" /> 
    </shape>
</item>


-1 Таким чином ви не можете отримати рівносторонній трикутник. І в будь-якому випадку, у нього є багато потенційних проблем, тобто. stackoverflow.com/questions/20805826 / ...
j_kubik

0

Google надає трикутник рівносторонній тут .
Виберіть VectorDrawable, щоб розмір був гнучким.
Він вбудований в Android Studio як плагін.

Якщо у вас є SVG-зображення, ви можете використовувати це для перетворення його також у VectorDravable.

Як тільки у вас є VectorDravable, змінити його колір і обертання легко, як інші згадали.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.