问题是对解析器功能的误解.行后:
XmlResourceParser parser = r.getXml(R.layout.testcameraoverlay);
解析器位于文档的开头,并且尚未读取任何元素,因此没有属性集,因为属性当然总是相对于当前元素.所以要解决这个问题,我不得不做以下这些迭代过的元素,直到我得到“TextView”:
AttributeSet as = null;
Resources r = getResources();
XmlResourceParser parser = r.getLayout(R.layout.testcameraoverlay);
int state = 0;
do {
try {
state = parser.next();
} catch (XmlPullParserException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
if (state == XmlPullParser.START_TAG) {
if (parser.getName().equals("TextView")) {
as = Xml.asAttributeSet(parser);
break;
}
}
} while(state != XmlPullParser.END_DOCUMENT);