我正在尝试将变量全局声明并初始化为final
,此变量应该包含width
中元素的height
和drawable
,如何实现这一点。
我想要像以下那样的“抚慰”,因为它不起作用,但它大致是我想要实现的目标:
private final int w = R.drawable.element.getwidth
答案 0 :(得分:0)
您可以定义函数getDrawableWidth
private int getDrawableWidth(Resources resources, int id){
Bitmap bitmap = BitmapFactory.decodeResource(resources, id);
return bitmap.getWidth();
}
然后按如下方式调用:
private final int w = getDrawableWidth(getResources(), R.drawable.element)
===编辑===
定义一个类来获取全局上下文(from here):
public class App extends Application{
private static Context mContext;
@Override
public void onCreate() {
super.onCreate();
mContext = this;
}
public static Context getContext(){
return mContext;
}
}
然后将getDrawableWidth
更改为其他格式:
private int getDrawableWidth(int id){
Bitmap bitmap = BitmapFactory.decodeResource(App.getContext().getResources(), id);
return bitmap.getWidth();
}
在任何地方使用它:
private final int w = getDrawableWidth(R.drawable.element)