один размер подходит для всех разрешений экрана - PullRequest
2 голосов
/ 14 марта 2012

Я чрезвычайно новичок в Android. Как менее чем за неделю нового. Я хочу, чтобы все было по размеру, если оно занимает, скажем, четверть экрана на одном телефоне. Я хочу, чтобы оно занимало 1/4 экрана на всех телефонах. Я пытался создать свой собственный метод для этого, но мне это не нравится, и должен быть лучший способ. Это то, что я придумал.

public int displayWidth(double ratioIn){
    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);
    double resolutionWidth = dm.widthPixels; //gets the width in pixels
    double ratio = (resolutionWidth/100); //devides by 100 so that ratio will be in terms of %
    int displayWidth = (int)(ratio*ratioIn); 
    return displayWidth;
}

Проблема в том, что есть потеря точности (хотя я пробовал это с разрешением 480, и это почти идеально). Есть ли лучший способ для этого? Я пытался использовать дп. Иногда это близко, но недостаточно близко.

1 Ответ

1 голос
/ 14 марта 2012

Если вы можете сделать это в XML, вы можете использовать LinearLayouts с атрибутом layout_weight . Если вы хотите, чтобы ваш элемент занимал 3/4 экрана, просто присвойте ему вес 3 и добавьте пустое представление с весом 1. Но имейте в виду - это требует высокой производительности.

...