From 9e770c663c7ac15b1a41db3bd7e920f8fe152eb8 Mon Sep 17 00:00:00 2001 From: Julian Winkler Date: Sat, 30 Mar 2024 00:02:37 +0100 Subject: [PATCH] ImageView: use obtainStyledAttributes() This is needed to support resolving attributes from themes --- src/api-impl/android/widget/ImageView.java | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/api-impl/android/widget/ImageView.java b/src/api-impl/android/widget/ImageView.java index 9b9b7c49..2db966cc 100644 --- a/src/api-impl/android/widget/ImageView.java +++ b/src/api-impl/android/widget/ImageView.java @@ -2,6 +2,7 @@ package android.widget; import android.content.Context; import android.content.res.ColorStateList; +import android.content.res.TypedArray; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; @@ -28,15 +29,9 @@ public class ImageView extends View { super(context, attrs, defStyleAttr); haveCustomMeasure = false; - if (attrs != null) { - int resid = attrs.getAttributeResourceValue("http://schemas.android.com/apk/res/android", "src", 0); - if (resid != 0 && !getResources().getString(resid).endsWith(".xml")) { - bitmap = BitmapFactory.decodeResource(getResources(), resid); - native_setPixbuf(bitmap.pixbuf); - } else if (resid != 0) { - setImageDrawable(getResources().getDrawable(resid)); - } - } + TypedArray a = context.obtainStyledAttributes(attrs, com.android.internal.R.styleable.ImageView, defStyleAttr, 0); + setImageDrawable(a.getDrawable(com.android.internal.R.styleable.ImageView_src)); + a.recycle(); } @Override