Как рассчитать разрешение в соответствии с каким-то конкретным разрешением? - PullRequest
1 голос
/ 14 сентября 2011

В моем приложении у меня есть одна кнопка, как это:

enter image description here

Разрешение этой кнопки составляет 192x32. И когда я помещаю эту кнопку в drawable-mdpi, это кажется хорошим для макета. Теперь для другого разрешения экрана для поддержки нескольких экранов, какой размер кнопки мне нужно сделать, чтобы увидеть дизайн хорошего макета в соответствии с экраном других устройств? Я имею в виду drawable-ldpi и drawable-hdpi, какое разрешение я должен сделать для этой кнопки? Как сделать такой расчет, чтобы размер этой кнопки соответствовал размеру экрана? Пожалуйста, помогите мне в этом. Спасибо.

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Нет необходимости создавать несколько кнопок для поддержки нескольких экранов. Вместо этого создайте одну кнопку и установите ширину и высоту во время выполнения. Это достигается путем получения ширины и высоты дисплея. Используйте приведенный ниже код для получения значений H & W на дисплее.

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

на основе вышеуказанных значений установите ширину и высоту кнопки во время выполнения.

Пример:

Button bt=(Button)findViewById(R.id.button);
bt.setWidth(width);//screen width(fill_parent)
bt.setHeight(height/6);//1/6 of the screen height

Приведенный выше код устанавливает ширину кнопки для размера экрана (дисплея) и высоту 1/6 экрана.

1 голос
/ 14 сентября 2011

На сайте для разработчиков Android имеется много информации по этому вопросу. В частности, есть список различных уровней dpi и диапазону точек на дюйм, которым они соответствуют.

Кроме того, вместо того, чтобы предоставлять разные изображения для разных разрешений, вы можете сделать изображение с девятью пластырями , и оно автоматически увеличится до размера кнопки. Хотя, если вы хотите сохранить выделение на заднем плане пропорциональным, может быть довольно сложно заставить его расширяться по вертикали.

...