0

ここここここ、および他のいくつかのウェブサイトでも同様の質問を見ました。

以下のコードのようにxmlを使用して形状を描画することを知っています

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval" >
    <gradient android:startColor="#FFFF0000" android:endColor="#80FF00FF"
        android:angle="270"/>
</shape>

しかし、このチュートリアルを見ているときにコードを見たのですが、xml を使用してフライトを描画しています。

png ファイルだと思っていたのですが、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:fillColor="#FF000000"
        android:pathData="M10.18,9"/>
    <path
        android:fillColor="#FF000000"
        android:pathData="M21,16v-2l-8,-5V3.5c0,-0.83 -0.67,-1.5 -1.5,-1.5S10,2.67 10,3.5V9l-8,5v2l8,-2.5V19l-2,1.5V22l3.5,-1 3.5,1v-1.5L13,19v-5.5l8,2.5z"/>
</vector>

そのpathDataとその内容が何を意味するのだろうかM21,16v-2l-8,-5V3.5c0...

説明できますか?

そして、私の次の疑問は、どうすればそのようにコーディングできるかです

いくつかの計算によって手動でコーディングする必要がありますか (各ピクセル位置を指定することにより)

また

PNG画像を持って形を描くトリックはありますか? (pngファイルをアップロードすると、XMLコードまたはその他の方法として提供されるオンラインコンバーター)

質問のタイトルは正しいですか?それがどのような方法かはわかりません。だから私は単にHow to draw...を入れました。間違ったことを指定した場合は修正してください。

前もって感謝します (:

4

2 に答える 2

3

あなたが見ている XML ファイルは VectorDrawable です。これは、ベクター グラフィックス ファイル形式の Android バージョンであり、一般的な SVG ファイル形式によく似ています。

現時点では、VectorDrawable を作成する主な方法が 2 つあります。それらがどのように機能するかを学べば、手作業でコーディングできますが、最も一般的な方法は、SVG ファイル (既存のもの、または自分で新しいものを描画する) を変換することです。

SVG の作成

SVG を描画する場合は、高価なものから無料のものまで、さまざまなツールが利用できます。例:

VectorDrawable への変換

オンライン コンバーターsvg2androidを使用できますが、Android Studio にはコンバーターが組み込まれています。これにアクセスするには、drawables フォルダーを右クリックし、[新規] > [ベクター アセット] を選択します。これにより、Google のマテリアル デザイン アイコンまたは独自の SVG ファイルから選択できます。

ここに画像の説明を入力

パスデータ

VectorDrawable の pathData は SVG 形式に基づいています。完全な説明については、こちらの SVG ドキュメントを参照してください。あなたの例M21,16v-2l-8,-5V3.5c0...では、それは次のことを意味します: ポイント 21,16 (M21,16) に移動し ます。長さ 2 (v-2) の上に垂直線を引きます すぐ。各文字は、新しいタイプのコマンドを開始します。

png からの変換

PNGをベクターに変換しようとしたことがないので、うまく機能するかはわかりません。試してみたい場合は、Googleが「pngをsvgに変換」し、svgを取得したら、上記のようにAndroidのVectorDrawable形式に再度変換します。

于 2015-12-20T00:48:23.540 に答える
1

これは、質問に関する詳細情報とそれに関連するいくつかの追加事項を含むAndroidドキュメントです。

https://developer.android.com/tools/help/vector-asset-studio.html

ただし、現在vector、API レベル 21 以上からサポートされていることに注意してください。

于 2015-12-19T10:07:02.163 に答える