我正在尝试将自定义属性(@drawable)添加到我的自定义视图中,我想将其作为resourceid检索。不知怎的,如果我想通过代码访问它,我的视图找不到它:
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.TouchImageView, defStyle, 0);
int base = a.getResourceId(R.styleable.imageDrawable, R.drawable.kaart);
我得到的错误是:
无法解析或不是字段
我的attrs.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TouchImageView">
<attr name="imageDrawable" format="string"/>
</declare-styleable>
</resources>
布局中的XML将是:
<nl.raakict.android.util.TouchImageView
android:id="@+id/plattegrond"
android:layout_width="match_parent"
android:layout_height="match_parent"
imageDrawable="@drawable/kaart"/>
最佳答案
啊,很简单。显然,styleable必须用作属性so:touchImageView_ImageDrawable的前缀。所以新的代码是:
int base = a.getResourceId(R.styleable.TouchImageView_imageDrawable, R.drawable.kaart);