AndroidのImageViewで色をプログラム的に変えたいと思って調べると、だいたい「元画像が単色」の場合の変更方法しか出てこない。マテリアルデザインの場合、原則アイコンは単色(tint-color)でデザインするのが基本だから仕方ないですね。
ここでは、元画像が複数色のものを
全体的に色調を変える方法を書きます。
|
オリジナル ⇒ 全体的に色調を変更
(素材はいらすとやから借用) |
ImageView#setColorFilter を使えば色を変更できるらしいという情報は、ググれば沢山出てくるのですが、全体的に色調を変える場合は、第二引数のModeに
PorterDuff.Mode.MULTIPLY を指定してあげるだけで良いです。
上図のような全体的に緑がかった感じにする場合は、
imageView.setColorFilter(0xff00ff00, PorterDuff.Mode.MULTIPLY);
でOK。
実際にAndroid上で動かせるようにしたものをGitHubにアップロードしておきました。
https://github.com/suzukiplan/ImageViewTest
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。