如何将R.Drawable作为自定义ImageView中的参数传递

时间:2014-03-23 01:27:39

标签: android class parameter-passing drawable

我有一个超级简单的类,它扩展了ImageView。我想添加(在它的构造函数中)R.Drawable的参数。理想情况下,我可以实例化自定义Char类,我会有一个很好的小ImageView背景。我知道这只是通过制作一个imageview并且我不会定制任何东西来实现这一点。这更适合学习。如何将R.Drawable作为参数传递?下面的代码声明我无法将drawable分配给int。

双倍更新: 片刻之后,我看到了一个答案,即只使用int作为参数。我想到了这一点,但这似乎并不优雅。我认为Android可能有更优雅的方式来接近这个。我尝试查看源文档,但迷失在迷宫中。显然,这是正确的答案。

*imports*


public class Char extends ImageView {

    Char (Context context, R.drawable drawable){
        super(context);
        setBackgroundResource(drawable);
    }
}

3 个答案:

答案 0 :(得分:2)

你看到传递int的答案是正确的。或者您可以创建drawable,传入并使用

public class Char extends ImageView {

    Char (Context context, Drawable drawable) {
        super(context);
        setBackgroundDrawable(drawable);
    }
}

答案 1 :(得分:1)

public class Char extends ImageView {

    /**
     * Constructor for <code>Char</code>
     * 
     * @param context The {@link Context} to use
     * @param resId The resource identifier of the {@link Drawable}
     */
    public Char(Context context, int resId) {
        super(context);
        setImageResource(resId);
    }

}

要使用它,请致电:new Char(your_context, R.drawable.your_drawable))

答案 2 :(得分:0)

R.drawable.xxx是一个int,所以只需将一个int参数传递给你的函数。