Я хотел бы разработать приложение, которое могло бы работать с устройствами с любым разрешением экрана.
Моя идея сделать это состояла в том, чтобы создать по одному пользовательскому представлению для каждого типа представлений, которые я использую, и использовать layout_width иlayout_height, указанный в XML как процент от родительского размера (например, layout_width = "100dp" эквивалентен fill_parent, а layout_width = "50dp" означает, что ширина представления будет вдвое меньше родительской).
Вот пользовательский класс TextView, который я сделал:
public class RSTextView extends TextView {
public RSTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int w, int h) {
int parentWidth = ((View)this.getParent()).getWidth();
int parentHeight = ((View)this.getParent()).getHeight();
Log.i(null, "Width: " + w + "; Height: " + parentHeight);
this.setMeasuredDimension(parentWidth * MeasureSpec.getSize(w) / 100,
parentHeight * MeasureSpec.getSize(h) / 100);
}
}
Но он не работает.Размер parentWidth и parentHeight всегда равен 0.
Итак, во-первых, это хорошая идея, чтобы сделать это таким образом, или у вас есть лучшие идеи для создания приложения с относительным размером?
А если это правильный путь, как я могу получить размер родителей View из метода onMeasure?
Спасибо!