Реализация нескольких макетов для нескольких экранов, но не работает в 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);
    }
}
Другие вопросы по тегам