Non-static method 'getResources()
时间: 2024-01-05 12:03:21 浏览: 39
如果在非 Activity 或 Fragment 类中使用 `getResources()` 方法,需要传递一个 Context 对象。可以通过构造函数或方法参数将 Context 对象传递给该类。
以下是一个示例方法:
```java
public class MyUtils {
public static Drawable bitmapToDrawable(Context context, Bitmap bitmap) {
return new BitmapDrawable(context.getResources(), bitmap);
}
}
```
在这个示例中,我们创建了一个静态方法 `bitmapToDrawable()`,该方法接受一个 Context 和一个 Bitmap 对象,并返回一个 Drawable。我们使用传递给方法的 Context 获取 Resources 对象,并将其传递给 BitmapDrawable 的构造函数,以便将 Bitmap 转换为 Drawable。
在调用该方法时,我们需要传递一个 Context 对象。例如,如果我们想将一个 Bitmap 转换为 Drawable 并将其设置为 ImageView 的背景,可以编写如下代码:
```java
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.my_image);
Drawable drawable = MyUtils.bitmapToDrawable(context, bitmap);
imageView.setBackground(drawable);
```
在这个示例中,我们首先使用传递给方法的 Context 获取 Resources 对象,然后使用 BitmapFactory 类从资源中解码 Bitmap。然后我们使用 MyUtils 类中的静态方法将 Bitmap 转换为 Drawable,并将其设置为 ImageView 的背景。