如何获得drawable中项目的宽度和高度?

时间:2014-07-23 11:44:18

标签: android view ondraw

我正在尝试将变量全局声明并初始化为final,此变量应该包含width中元素的heightdrawable,如何实现这一点。 我想要像以下那样的“抚慰”,因为它不起作用,但它大致是我想要实现的目标:

private final int w = R.drawable.element.getwidth

1 个答案:

答案 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)