Установка высоты просмотра в дп единиц по коду?

1

Мне было интересно, возможно ли изменить высоту LinearLayout в моем java-коде от чего-то вроде 100dp до 200dp?

Теги:
android-layout

3 ответа

5
Лучший ответ

Да.

(int) TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, 2, this.getResources()
        .getDisplayMetrics()));

также вы можете добавить измерение в значения и получить его из ресурсов.

Значения измерений

  • 0
    Спасибо! это было то, что я искал
1

Попробуйте этот учебник http://developer.android.com/guide/practices/screens_support.html#DensityConsiderations

Это может помочь вам преобразовать dp в px. Это значение px, которое вы можете установить в LayoutParams. Надеюсь, это полезно

0
// The gesture threshold expressed in dp
private static final float GESTURE_THRESHOLD_DP = 16.0f;

// Get the screen density scale
final float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale
mGestureThreshold = (int) (GESTURE_THRESHOLD_DP * scale + 0.5f);

// Use mGestureThreshold as a distance in pixels...

Поле DisplayMetrics.density указывает коэффициент масштабирования, который вы должны использовать для преобразования единиц dp в пиксели в соответствии с текущей плотностью экрана. На экране средней плотности DisplayMetrics.density равен 1.0; на экране с высокой плотностью он равен 1.5; на дополнительном экране с высокой плотностью он равен 2.0; и на экране с низкой плотностью он равен 0.75. Эта цифра является фактором, с помощью которого вы должны умножить единицы измерения dp на порядок, чтобы получить фактическое количество пикселей для текущего экрана. (Затем добавьте 0.5f для округления фигуры до ближайшего целого числа при преобразовании в целое число.) Для получения дополнительной информации обратитесь к классу DisplayMetrics.

Ответ от документации по Android, поэтому вам не нужно искать контент

Ещё вопросы

Сообщество Overcoder
Наверх
Меню