Это мой самый первый вопрос здесь, поэтому, пожалуйста, идти просто на меня;)Android вид пользовательского изображения, используя встроенные атрибуты
Я построил мой пользовательский класс
View
расширенияImageView
.public class CustomImageView extends ImageView { // ... }
Я создал набор пользовательских параметров для него в виде
<declare-styleable>
элемента в файлеattrs.xml
.<declare-styleable name="CustomImageView"> <attr name="angle" format="integer"/> </declare-styleable>
Я понял, как получить доступ (то есть считывать из класса и устанавливается внутри макета) этих значений.
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.CustomImageView, 0, 0); try { a.getInt(R.styleable.CustomImageView_angle, 0); } finally { a.recycle(); }
До сих пор так просто. Все вышесказанное прямо взято из guide.
Однако, я не мог понять, как получить доступ к наследуемым атрибутам ImageView
класса. В частности, я хочу прочитать, что было установлено как атрибут src
ImageView
. Я предполагаю, что я должен использовать другое значение для второго параметра obtainStyledAttributes(...)
вызова, но я не знаю, что использовать там, и это, очевидно, не работает:
a = context.getTheme().obtainStyledAttributes(attrs, ImageView, 0, 0);
Итак, как получить доступ встроенные атрибуты моего суперкласса?
Как получить значение int (drawable res id), которое было установлено для атрибута android:src
?
Благодарим за помощь!
вы смотрели на то, что вы можете получить от "супер" указатель ли? – Nanoc
Да. Существует метод 'getDrawable()', но он возвращает объект «Drawable», а не идентификатор ресурса int. Существует также метод 'setImageResource (int)', который делает точно противоположное тому, что я хочу. Эквивалент 'getImageResource()', похоже, не существует. – inedible