У меня небольшая проблема с пониманием: я пытался самостоятельно внедрить Snake-Example, потому что я собираюсь реализовать собственный View.SnakeView наследует от TileView, который является представлением на основе плиток и который загружает простые квадратные растровые изображения (отрисовки) по определенным координатам.
Ну, сейчас я не понимаю необходимости "attrs.xml":
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="TileView">
<attr name="tileSize" format="integer" />
</declare-styleable>
</resources>
Я определил свой собственный атрибут tileSize из типа integer , который используется в TileView , верно?Этот атрибут также можно найти в файле макета:
<net.xyz.android.snake.SnakeView
android:id="@+id/snakeView"
android:layout_width="match_parent"
android:layout_height="match_parent"
tileSize="50" />
А теперь запутанный аспект: конструктор моего TileView:
public TileView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.TileView);
mTileSize = a.getInt(R.styleable.TileView_tileSize, 20);
a.recycle();
}
... который должен открыть динамический путь кизменить tileSize в файле макета, верно?Но только если я изменю 2-й параметр (значение по умолчанию) в моем конструкторе, размер изменится.Обычный способ - использование макета - не меняет tileSize.
Полагаю, значение макета неверно связано с этим вызовом конструктора, не так ли?
У вас есть идеи?
Спасибо большое!