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>

これをパス形状などで実行できますか?正三角形が必要です。

ありがとう


解決策は見つかりましたか?私も同じ問題を抱えています。
Mike Bevz

これは、ガイダンスを作成した人(およびいくつかのコメント)に効果があるようです:Android:キャンバスに正三角形を描く
Diegum

回答:


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>

不明な点がある場合や、それがどのように構築されているかについて説明が必要な場合は、私の投稿を参照してください。それは切り抜いた長方形を回転させます:)それは非常にスマートでうまく機能するソリューションです。

編集:->のように指す矢印を作成するには:

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

そして、<-のような矢印を作成するには:

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

3
すみませんが、正三角形が直角三角形になることはありません。
lilbyrdie 2013

3
@JacekMilewski-どうもありがとう!下向き矢印のpivotX / pivotYパラメーターを共有することに注意してください。左?正しい?
JohnnyLambada 14年

2
回転するには、三角形の定義自体ではなく、レイアウトxmlファイルの回転を変更します。
Jacek Milewski、2014年

1
-1。これは良くありません。ビューの実際の寸法は、画面に表示されるものよりも大きくなります。それは境界を包むべきでした。
Javanator、2015年

1
fromDegrees、toDegrees、pivotX、pivotYの値の導出方法を教えてください。レイアウトファイルで回転を変更できないユースケースがあります。
Patrick Brennan

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

ここでより多くのオプションを取得できます。


3
どのようにその値をxmlに入れますか?
user531069

2
このTextViewをコピーしてxmlに貼り付けます
Elhanan Mishraky

6
@ user531069:これをstrings.xmlに<string name="bottom_arrow">&#9660;</string>

1
リンクとは異なる矢印が必要です。コピーして貼り付けます&#129032; テキストとして、不明な文字が表示されます。?
M.ウスマンカーン

2
このソリューションは、テキストビュー内のフォントパディングの処理に関する新しい問題を作成します。
Salman Khakwani

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
    />

結果

ここに画像の説明を入力してください

ベクトルの形状を変更するには、ベクトルの幅/高さを変更できます。幅を10 dpに変更する例

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

ここに画像の説明を入力してください


ありがとう、私はこれらのベクトルがどのように機能するのか本当にわかりません。結果が必要でした
Hossein Shahdoost 2017年

これらの三角形のサイズを増減するにはどうすればよいですか?高さと幅を指定すると機能しません
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_width / layout_height属性を設定して、三角形のサイズ(幅/高さ)を変更します。このようにして、数学を正しく行うと、等辺三角形を取得できます。

更新2017.11.25

サポートライブラリを使用する場合、API 7までさかのぼって(ビットマップを作成する代わりに)実際のベクターを使用できます。単に追加:

vectorDrawables.useSupportLibrary = true

defaultConfigモジュールのbuild.gradleで実行してください。

次に、(vector xml)ドローアブルを次のように設定します。

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

すべてがVector Asset Studioのページに非常にうまく文書化されています。

この機能以来、アイコンに関してはビットマップなしで完全に動作しています。これによりAPKのサイズもかなり小さくなります。


1
リンクを投稿すると、誰かがアップロードしてくれます:-)
GabrielOshiro

1
+1にvectorDrawables.useSupportLibrary = trueは、colors.xmlビットマップがビルド中に作成されるため(定義された色が使用できない場合)、で定義された色を使用できるという追加の利点があります。
Rob

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で赤に変わりますか?
Fshamri

これはxmlのハックよりもはるかに優れています
dorsz

@ピーターこんにちは。小さな改善を手伝ってくれませんか?右上の角を丸くする必要があります。どうすればこれを達成できますか?
Barterio 2016年

1
三角形の内側にテキストを追加するにはどうすればよいですか?
Sakiboy 2016年

38

Jacek 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

21

ここで回答を参照してください: 画像なしのカスタム矢印:Android

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="32dp"
        android:height="24dp"
        android:viewportWidth="32.0"
        android:viewportHeight="24.0">
    <path android:fillColor="#e4e4e8"
          android:pathData="M0 0 h32 l-16 24 Z"/>
</vector>

矢


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のために特別に求めされていないソリューションを探しているOP以外の人がいる-午前Iとして
johndodo

1
onDrawは、ViewGroupから派生したクラスでは呼び出されません。デフォルトではありません。setWillNotDraw(false)による描画を有効にするか、代わりにビューから継承する必要があります。
ブラゴ

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>

ここに画像の説明を入力してください


使用Lzて、最後に私の問題を解決しました、ありがとう!
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でビューを作成し、その背景をステップ1で作成した描画可能なXMLにバインドします。私の場合、v_right_arrowをビューのbackgroundプロパティにバインドします。

<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/drawable/shapes/PathShape.html


2
XMLでパス形状を使用する方法
セバスチャンロス

これは、使用する適切な部分を見つけるのに役立ちましたが、それを使用する方法についてほとんど十分な説明を提供していません。とにかくありがとう。
Navarr 2012年

申し訳ありませんが、セバスチャンとナバール...私はそれを使用したことがないことを私の回答で示したので、それをどのように使用するかについてはわかりません。これは、仕事を成し遂げるクラスのようです。十分なドキュメントがないことにも同意します。
ジャスティン

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>

私はOPがxmlソリューションのソリューションを望んでいることを知っていますが、私がxmlアプローチの問題を指摘したように。私はそれが誰かを助けるかもしれないと思います。


2

Jacek Milewskiのソリューションを使用して、背景を透明にして下向きにした。

<?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:pivotXandroid: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ナビゲーションバーの戻るボタンのような三角形の画像を作成しようとしましたが、解決策が見つかりませんでした。

今、私は自分で解決策を見つけ、それを共有したいと思います。

三角ナビゲーションバーアンドロイド

以下の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

ここでは、正三角形を提供しています
サイズが柔軟になるようにVectorDrawableを選択します。
プラグインとしてAndroid Studioに統合されています。

SVG画像がある場合、これを使用してVectorDrawableに変換することもできます。

VectorDrawableを取得すると、他の人が述べたように、色と回転を簡単に変更できます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.