ButterKnife - 绑定可绘制资源

ButterKnife - bind drawable resource

如何使用ButterKnife注解去掉下面的初始化代码?

private Drawable mExpandDrawable;
private Drawable mCollapseDrawable;

void init() {
    mExpandDrawable = getResources().getDrawable(R.drawable.ic_expand_small_holo_light);
    mCollapseDrawable = getResources().getDrawable(R.drawable.ic_collapse_small_holo_light);
}

使用 ButterKnife 7 @BindDrawable API。

import butterknife.BindDrawable;

@BindDrawable(R.drawable.ic_expand_small_holo_light)
protected Drawable mExpandDrawable;
@BindDrawable(R.drawable.ic_collapse_small_holo_light)
protected Drawable mCollapseDrawable;

void init() {
    ButterKnife.bind(this);
}

有 @绑定字符串, @BindInt, @绑定维度, @绑定颜色, @绑定布尔 对于其他资源类型。

在 ButterKnife 中使用 @Bind 属性,如下所述。

@BindDrawable(R.drawable.ic_expand_small_holo_light) Drawable mExpandDrawable;

并在调用 setContentView 方法后的 onCreate 中,使用 ButterKnife 的绑定方法(如果您正在使用 Activity)。

@Override public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.simple_activity);
    ButterKnife.bind(this);
    // TODO Use fields...
}

如果您使用的是 Fragment,请使用以下代码初始化 ButterKnife:

@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fancy_fragment, container, false);
    ButterKnife.bind(this, view);
    // TODO Use fields...
    return view;
}