如何从非活动类访问drawable

And*_*lva 8 android drawable

我处于一种情况,我必须使用drawable folder我的应用程序形成非活动类.我尝试使用以下代码的父活动:

ParentActivity pa = new ParentActivity();
Drawable d = pa.getResources()..getDrawable(R.drawable.icon);`
Run Code Online (Sandbox Code Playgroud)

但是这让我回头了NulLPointerException.我怎样才能做到这一点?

Bal*_*i.K 15

将上下文对象作为参数传递给非Activity类的构造函数.

然后使用该上下文对象获取资源.

public class MyClass {
  Context context;
  public MyClass(Context context) {
      this.context = context;
  }

  public void urMethod() {
    Drawable drawable=context.getResources().getDrawable(R.drawable.icon);
    // use this drawable as u need
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 请注意,从API 22,获得drawables的正确方法是:`Drawable drawable = ContextCompat.getDrawable(context,R.drawable.icon)` (2认同)

小智 5

import com.(package-name).R;
Run Code Online (Sandbox Code Playgroud)

那么您可以访问所有可绘制对象,例如R.drawable.icon。