DrawerArrowDrawableのメモ


DrawerArrowDrawable

よく使いそうなメソッド

  • setStrokeColor
    ラインの色の設定。
  • setParameter
    回転の度合いの設定。

DrawerLayoutとの連携

ハマったこと

widthとheightに数値を指定(今回は54dpx54dp)したImageViewにセットした時のこと。

どうやらImageViewの大きさに合わせてDrawableが拡大してしまっている様子。
scaleTypeを指定すればOK。

layout.xml
<ImageView
    android:layout_width="54dp"
    android:layout_height="54dp"
    android:scaleType="centerInside"/>

結果


もう一点。よく見るとラインの角が丸まっていない。
これはDrawerArrowDrawableのインスタンス生成時に下記のようにすればOK。

MainActivity.java
DrawerArrowDrawable arrow = new DrawerArrowDrawable(getResources(), true);

コンストラクタの第2引数はラインの角を丸めるかどうかのboolean値で、デフォルト(第2引数なし)ではfalseになっている。
結果

まとめ

layout.xml
<ImageView
    android:id="@+id/imageView"
    android:layout_width="54dp"
    android:layout_height="54dp"
    android:scaleType="centerInside"/>
MainActivity.java
ImageView imageView = (ImageView) findViewById(R.id.imageView);
DrawerArrowDrawable arrow = new DrawerArrowDrawable(getResources(), true);
arrow.setStrokeColor(Color.BLACK);
imageView.setImageDrawable(arrow);