Burt.K

코코아를 좋아하는 프로그래머입니다 ;)

TypedArray의 getDrawable()이 null을 반환한다면?

<declare-styleable name="WatermarkButton">
    <attr name="watermarkImage" format="reference" />
</declare-styleable>

위처럼 속성을 선언하고 아래 코드처럼 접근할 때, null을 반환한다면

TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.WatermarkButton);
watermarkDrawable = typedArray.getDrawable(R.styleable.WatermarkButton_watermarkImage);
typedArray.recycle();

해당 커스텀뷰를 선언한 xml로 이동하여 xml 네임스페이스를 제대로 적었는지 확인한다.

xmlns:watermark="http://schemas.android.com/apk/res-auto"

이렇게 적어야 하는데 가끔 인텔리센스에 의해서

xmlns:watermark="http://schemas.android.com/tools"

로 쓰여질 경우가 있다. 길고긴 삽질;

← Hello, PercentLayout!
나이스! →