Атрибуты XML доступны внутри AttributeSet
объектов, которые доступны только внутри конструкторов View
.
Поэтому, если вы не можете изменить источник пользовательского класса View
, вы не сможетевыполнить то, что вы хотите сделать.
Если вы можете изменить источник класса, то вы можете сохранить ссылку на значение атрибута внутри конструктора и предоставить метод получениядля этого.Например:
private int strokeColor;
public MyCustomView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
...
TypedArray a = context.getTheme().obtainStyledAttributes(attrs, R.styleable.MyCustomView, 0, 0);
this.strokeColor = a.getColor(R.styleable.MyCustomView_strokeColor, defaultColor);
...
a.recycle();
}
public int getStrokeColor() {
return strokeColor;
}