2017-01-05 18 views
4

私はここから材料アイコンの数をダウンロード:マテリアルアイコンの色を変更しますか?

https://material.io/icons/

を私はドロウアブルとしてこれらのアイコンの色を変更する方法についての混乱しています。私はそれぞれのアイコンの色を変更するにはどうすればよい

<Button 
    android:text="Hey" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:drawableLeft="@drawable/ic_arrow_upward_black_24dp" 
    android:stateListAnimator="@null" /> 

<ImageButton 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    app:srcCompat="@drawable/ic_arrow_downward_black_24dp" 
    android:background="@null" /> 

:私はdrawableLeftプロパティにアイコンが付いた1 Button、その後、そのように、設定アイコンでImageButtonの数を持っていますか?

また、ダウンロードしたアイコンが黒色の場合、アイコンの色をどのように透明な色に変更できますか?

答えて

3

あなたのXMLレイアウトファイルであなたのImageButtonにこれを追加
android:tint="@color/black" 
android:tintMode="@color/black" 
+0

次のようになります方法ですと、これは互換性がありますか? 'Button'はどうですか? –

+0

また、このように透明な色を設定しようとすると、ほとんど黒色で表示されます(ダウンロードしたアイコンが黒色で、色合いは黒色を置き換えるのではなく黒色に透明色を適用しているためです) 。 –

0

APPCOMPATウィジェットのすべてがandroid:tint="@color/somecolorresource"属性をサポートしています。あなたの活動/断片がAppCompatActivity/Fragmentに広がっている場合、これはどんなImageView/TextView/ImageButton/...でも動作します。

参照:https://stackoverflow.com/a/37261384/3662251

+0

このように透明な色を設定しようとすると、ほとんど黒色になります(ダウンロードしたアイコンが黒で、色合いは黒を置き換えるのではなく、黒の上に透明色を適用しているためです)。 –

+0

色合いはカラーフィルターを使用して適用されます。透明色を使用すると、実際の色が「リーク」する可能性が高くなります。 –

+1

通常の色を使用し、ビューに 'android:alpha =" 0.5 "'属性を使用して透明にすることができます。 –

1

あなたのアイコンがベクトルの場合は、xmlファイルを編集し、android:fillColor属性を変更することができます。アイコンがビットマップの場合は、android:tint属性をImageButtonに追加できます。

0

このlinkは、アイコンを編集するのに最適です。透明な背景を持つアイコンも生成できます。お役に立てれば。

19

あなたはhttps://material.io/icons/でがAndroidのスタジオ、でもそれらをダウンロードする不要で使用できるようになりましたすべての素材のアイコンを実現します。 ドローアブル上だけで右クリック>新規>ベクタ資産

あなたのイメージを選択して保存し、少しAndroidのアイコンをクリックした後

this

のようなダイアログが表示されます。これは、ここにあなたの好みに合わせて開いて編集することができ

描画可能XMLを作成します。それは何のAndroidのバージョン

<vector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:alpha="0.8" <!--set the transparency from here --> 
     android:width="24dp" 
     android:height="24dp" 
     android:viewportWidth="24.0" 
     android:viewportHeight="24.0"> 
    <path 
     android:fillColor="#FF000000" <!-- Use this for setting your color --> 
     android:pathData="M9.4,16.6L4.8,12l4.6,-4.6L8,6l-6,6 6,6 1.4,-1.4zM14.6,16.6l4.6,-4.6 -4.6,-4.6L16,6l6,6 -6,6 -1.4,-1.4z"/> 
</vector> 
+1

私はこの回答をさらにアップアップすることができるように、より多くのアカウントを作成したいと思います。この情報を反映するために、Googleはマテリアルアイコンのウェブサイトを更新する必要があります。 – Robert

+1

以前のバージョンのAndroidでサポートされていないベクタードロアブル(複数のpngを使用する必要があります)。しかし、AppCompatの最新バージョンでは、古いバージョンをサポートしている場合でも、このようなベクタードロワブルを使用することができます:https://stackoverflow.com/questions/40678947/how-to-properly-use-backwards-compatible-vector-drawable-with最新のアンドロイド – mkasberg

関連する問題