1

Я новичок в разработчике Android. Я разработал несколько макетов для нескольких экранов, но макеты не работают в студии Android. я использую различные папки макета:Внедрение нескольких макетов для нескольких экранов, но не работающих в студии android 2.1

макета небольшой, расположение нормальное, макета большой, макета XLarge, макет (по умолчанию)

+0

что вы имеете в виду под "не работает"? –

+0

Я тестировал на небольших мобильных телефонах изображение не изменяло размер текста, иногда менялось. большой мобильный рендеринг по умолчанию, как вкладка галактики Samsung (SM-T23Nu) –

ответ

0

Что вы должны сделать, это масштабировать все на вашем экран в зависимости от размера экрана.
например: Если у вас есть TextView, вы можете сделать:

TextView myTextView = (TextView) findViewById(R.id.myTextView_ID); 
int tempSize = myTextView.getTextSize(); 
myTextView.setSize(TypedValue.COMPLEX_UNIT_SP, tempSize*w*h/KONSTANT); 

Где ж и ч ширина и высота экрана и Констан является продуктом вашего размера экрана по умолчанию.
Вы можете получить ш и ч с помощью:

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); 
    } 
}