Реализация нескольких макетов для нескольких экранов, но не работает в Android Studio 2.1
Я новичок в Android разработчика. Я разработал несколько макетов для нескольких экранов, но макеты не работают в Android Studio. Я использую разные папки макета:
layout-small, layout-normal, layout-large, layout-xlarge, layout (по умолчанию)
1 ответ
Что вы должны сделать, это масштабировать все на экране в соответствии с размером экрана.
Например: если у вас есть textView, вы можете сделать:
TextView myTextView = (TextView) findViewById(R.id.myTextView_ID);
int tempSize = myTextView.getTextSize();
myTextView.setSize(TypedValue.COMPLEX_UNIT_SP, tempSize*w*h/KONSTANT);
Где w и h - ширина и высота экрана, а KONSTANT - произведение размера экрана по умолчанию.
Вы можете получить w и h, используя:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
h = metrics.heightPixels;
w = metrics.widthPixels;
В качестве альтернативы, вы можете иметь несколько макетов (как в настоящее время), а затем выбрать один в соответствии с размером экрана.
например:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
h = metrics.heightPixels;
w = metrics.widthPixels;
if (h == smallScreenH && w == smallScreenW) {
setContentView(R.layout.small_screeen);
}
else if (h == mediumScreenH && w == mediumScreenH) {
setContentView(R.layout.mdeium_screen);
}
}