Android: Launcher Icon ширина и высота в DP - PullRequest
4 голосов
/ 05 марта 2012

В Android мы можем определить ресурсы по плотности экрана, такие как LDPI, HDPI и MDPI.

Я надеюсь создать пользовательский интерфейс с TextLayout такой же ширины и высоты, как и ImageView рядом с ним. ImageView содержит изображение того же размера, что и значок запуска (72 пикселя для HDPI и т. Д.).

Есть ли способ узнать, что значок имеет определенную высоту ширины в 'dp' (без kwnoi, поэтому я могу жестко закодировать XML. Я думаю, что это возможно, потому что dp не зависит от устройства, но не может найти какой-либо способ получения значений в дп.

<TextView 
    android:id="@+id/holidaylistitem_day"
    android:layout_width="<X>dp"
    android:layout_height="<Y>dp" 
    android:text="1st"/>

<ImageView 
    android:id="@+id/holidaylistitem_type"
    android:src="@drawable/ic_launcher"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

Мне нужны значения X и Y, поэтому оба будут одинакового размера.

Ответы [ 4 ]

7 голосов
/ 05 марта 2012

В Android-руководстве есть страница, на которой описаны рекомендуемые размеры значка . Короче говоря, иконки запуска имеют размер 48x48 dp.

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

Как говорит Android Killer, «есть 4 случая, так как в Android есть разные типы устройств ...».И вы можете получить dpi. Для преобразования px в dp используйте это:

dp = (px * 160) / dpi
Ссылка:
developer.android

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

Есть 4 случая, так как в Android есть разные типы устройств:

ldpi --> 36x36
mdpi --> 48x48
hdpi -->72x72
xhdpi --> 96x96

Проверьте это Ссылка .

0 голосов
/ 02 июля 2014

У меня есть лучшее решение для вашей ситуации, однако оно немного сложнее.Вот и мы:

  1. Если вы не можете определить размер значка, но уверены, что он квадратный, и вы хотите, чтобы его ширина / высота соответствовала значку, расположенному горизонтально.Вы можете сделать это:

    android: layout_alignTop = "@ + id / holidaylistitem_type" android: layout_alignBottom = "+ id / holidaylistitem_type"

  2. Теперь ваша позиция и высота TextViewфиксированный.Затем вы расширяете свой TextView и делаете это:

    @ Override
    защищенный void onMeasure (int widthMeasureSpec, int heightMeasureSpec) {

        int width = MeasureSpec.getSize(widthMeasureSpec);
        int height = MeasureSpec.getSize(heightMeasureSpec);
    
        if (width > height) {
            width = height;
        }     
        super.onMeasure(
                MeasureSpec.makeMeasureSpec(width, MeasureSpec.EXACTLY),
                MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY)
        );
    }
    
  3. Квадрат размером с ImageView.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...