2016-10-16 4 views
1

Android SDKには次のアイコンがあります。提供されているAndroid SDKのアイコンを色で設定できますか?

色を設定する方法はありますか?できれば、どうすればいいですか?

<ImageView 
     android:id="@+id/share_button" 
     style="@style/IconNav" 
     android:src="@android:drawable/ic_menu_share"/> 

    <ImageView 
     android:id="@+id/bookmark_button" 
     style="@style/IconNav" 
     android:src="@android:drawable/ic_input_get"/> 

enter image description here

UPDATE

プロジェクトの完全リフレッシュを行った後、それは、XMLでtint属性はトリックをやっ判明。短い答え

については

...これは私のために働いたソリューションです - ImageViewのをXMLにプロパティを追加:

android:tint="@color/grass_dark" 

@goldenbからの答えはこれを解決するためのさまざまな方法を徹底的に実行して、それを答えとしてマークします。

答えて

3

元の色の

ブロガーdanlewで述べ

  • ImageViewのの色合いは、元のアセットとの色合いのカラーをミックスとして。あなたが望むのは色合いの色が完全に引き継がれることです。代わりに は、既存の色の上に色合いを適用します。たとえば、 のソースアセットが黒で、#77FFFFFF(半透明の の白の色)にしたい場合は、実際にその白の色合いが黒の背景に黒色で表示されます。

  • アンドロイド:色合いはImageViewに限定されています。任意のビューで任意のDrawableを色づけしたいと思っています。

    カラーフィルタは、それぞれの色を変更するためにペイントで使用することができます:あなたはofficial documentationによるアンドロイドColorFilter

    を使用するための一つの可能​​な代替は次のようになり

そのペイントで描画されたピクセル。これは決して直接使用されるべきでない抽象クラスです。

ColorFilterでできることは多かれ少なかれ複雑ですが、どのようにこれを適用できますか?

別の一つの簡単なexampleので質問です:here

ImageView redCircle = (ImageView) findViewById(R.id.circle_red_imageview); 
ImageView greenCircle = (ImageView) findViewById(R.id.circle_green_imageview); 
ImageView blueCircle = (ImageView) findViewById(R.id.circle_blue_imageview); 



// we can create the color values in different ways: 
redCircle.getDrawable().setColorFilter(Color.RED, PorterDuff.Mode.MULTIPLY); 
greenCircle.getDrawable().setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY); 
blueCircle.getDrawable().setColorFilter(getResources().getColor(R.color.blue), PorterDuff.Mode.MULTIPLY); 

から

//White tint 
imageView.setColorFilter(Color.argb(255, 255, 255, 255)); 

or 

imageView.setColorFilter(ContextCompat.getColor(context,R.color.COLOR_YOUR_COLOR)) 

それともここSOでより完全な答えあなたが

詳細を知りたい場合は、これらのリンクをチェックする必要があります

SO - What is the difference between background, backgroundTint, backgroundTintMode attributes in android layout xml?

setColorFilter()

Fast Android asset theming with ColorFilter

SO-Modifying the color of an android drawable

+0

@gnB問題を解決できましたか?私はこの答えが正しいとマークする必要があると信じています、これが助けられたかどうかを教えてください) – HenriqueMS

+1

Javaの色を設定するこの解決策は、 'android:tint'を使用すると同様に機能します。他のアプローチと同様に、私はそれを動作させるためにプロジェクトをクリーニング/リフレッシュしなければなりませんでした。ポインタと詳細をありがとう – gnB

+0

@gnB私の喜び! – HenriqueMS

1

色付きのビットマップを使用できます。これをあなたのdrawablesフォルダに追加してください。

ic_input_get_colored.xml:あなたは確かにあなたがandroid:tintが常に上に適用されることに留意しなければならないImageViewの色を変える方法として、色合いを使用することができますが、

<?xml version="1.0" encoding="utf-8"?> 
<bitmap xmlns:android="http://schemas.android.com/apk/res/android" 
     android:src="@android:drawable/ic_input_get" 
     android:tint="@color/yourDesiredColor"/> 
+0

これは ''タグで働いていました。私はそれを動作させるためにプロジェクトをきれいにする/リフレッシュしなければならなかった。 – gnB

+0

素敵です。運が良かった。 – MohanadMohie

関連する問題