LoginSignup
31
28

More than 5 years have passed since last update.

AndroidでBlur効果を実現する方法(Glide Transformations, Blurry)

Last updated at Posted at 2015-08-27

iOSでは割りとよく見るBlur(ぼかし)ですが、Androidでも実現したい時があります。
Blurについて調べていた時に、便利なライブラリと出会ったので紹介します。

Glide Transformations

1つめはwasabeef先生作のGlide Transformationsです。

ImageLoaderとしてGlideを使っている方はこちらを使えばさくっとBlur効果を実現できます。

Glide.with(getContext())
       .load(resId)
       .bitmapTransform(BlurTransformation(getContext(), Glide.get(getContext()).getBitmapPool()))
       .into(background)

使い方は上のようにTransformにライブラリでサポートされているTransformationを渡すだけです。
(RenderScriptを使用する必要はあります)

他のTransformationはGithubからたどってください。

Blurry

2つめはwasabeef巨匠作のBlurry

Glide Transformationsとは異なり、Viewを指定したりしてBlurを書けることが出来ます。Blur特化なライブラリです。インタフェースがとてもシンプルでいい感じです。

Blurry.with(MainActivity.this)
        .radius(10)
        .sampling(8)
        .async()
        .capture(findViewById(R.id.right_bottom))
        .into((ImageView) findViewById(R.id.right_bottom));

サンプリングやどのViewに対してBlurをかけるのか等指定する事が可能です。Githubに上がっているサンプルアプリを触ると、とてもいい感じなのがわかります。

Blurry.with(MainActivity.this)
        .radius(25)
        .sampling(2)
        .async()
        .animate(500)
        .onto((ViewGroup) findViewById(R.id.content));

また、↑のようにImageViewに反映するだけではなく作られたDrawableをViewGroupに追加することも可能です。ここはGlide Transformationsと異なる点です。

device-2015-08-27-180102 copy.jpg device-2015-08-27-180121 copy.jpg

また、Blurryのasync()animate()などもサポートされているというホスピタリティが素敵でした。

まとめ

現在、Glideを使用していて画像に対してBlurを実現したい場合はGlide Transformationsを使う方がいいです。キャッシュもありますし、わざわざBlurryを追加して使う必要もありません。
そもそも非同期で取得した画像に対してBlurryを使うのは少し面倒くさいです・・。(BlurryのIssueを見ると、キャッシュが2.0でサポートされるかもしれません。)

おまけ

Blurryがアニメーション・Blur効果の微調整・非同期など様々なものをサポートしているのに、中身がとてもシンプルな設計でコードも少なく感動したので記事を書こうかなと思い立ちました。

  • Blurry
  • Blur
  • BlurFactor
  • BlurTask
  • Helper

クラスは↑の5つのみ。Blurryクラスはインタフェースとして提供されているので、実質4つだけ。しかもそれぞれとてもシンプルで読みやすい。コンパクトで使いやすいライブラリでとても素敵でした。

31
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
28