Вопрос по android-layout, android – Два устройства с одинаковой плотностью и разным размером изображения?

0

Хорошо, вот проблема, которая пугает меня, и я действительно хотел бы, чтобы вы помогли мне. Я тестирую свое приложение как с HTC Amaze, так и с Galaxy S2 (как я знаю, оба с высокой плотностью), и оба в диапазоне экрана 3,7-4,3

Проблема в том, что одно и то же изображение выглядит по-разному на обоих экранах. На HTC удивить его гораздо меньше. У меня есть 3 папки для рисования с разными размерами (которые мне здесь все равно нужны, потому что оба устройства имеют одинаковую плотность)

Я провел некоторую отладку на DisplayMatrics и обнаружил, что для HTC удивляет следующее:

density 1.5
desnityDPI 240
Height pixels:540
Width pixels:960
xdpi 258
ydpi 256

Тем не менее, для галактики S2 показатели отображения:

density 1.5
desnityDPI 240
Height pixels:480
Width pixels:800
xdpi 160
ydpi 160

Так может кто-нибудь объяснить мне, почему размеры изображений на обоих устройствах разные. На HTC поражают изображения намного меньше, чем на S2? Спасибо

Изменить: код, используемый для получения информации DP

DisplayMetrics mt =getApplicationContext().getResources().getDisplayMetrics();

РЕДАКТИРОВАТЬ:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/carpet"
    android:clipChildren="false"
    android:clipToPadding="false"
    android:keepScreenOn="true" >
    <RelativeLayout
        android:id="@+id/relativeLayoutBottom"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:clipChildren="false"
        android:clipToPadding="false" >

        <ImageView
            android:id="@+id/ivBottom1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <ImageView
            android:id="@+id/ivBottom2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp" />

        <ImageView
            android:id="@+id/ivBottom3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="40dp" />
    </RelativeLayout>

   </RelativeLayout>



private void initialize(ArrayList<CardSuitNumber> cards) {

    RelativeLayout flBottom = (RelativeLayout) findViewById(R.id.relativeLayoutBottom);
    player1.clearAll();

    for(int i=0; i<GameConstants.MAXRANKS;i++){
        player1.addCard((ImageView)flBottom.getChildAt(i));


    }
}


public void addCard(ImageView im){


        Drawable drawable = card.getCardSuitNumber().getDrawable(mActivity);
        im.setImageDrawable(drawable);
        imsetVisibility(View.VISIBLE);


}
Вы пытались поставить новый диск на S2? Какие версии ОС обоих телефонов? L7ColWinters
новый ром? не уверен, что это значит, но я так не думаю. Версия ОС - Android 2.3.5 для Galaxy и 2.3.4 для HTC Snake
В S2 есть одна проблема, с которой я однажды столкнулся, она берет ресурсы из неправильной папки ресурсов. Чтобы проверить, из какой папки устройства получают ресурсы, вы можете попробовать следующее: использовать разные изображения в разных папках ресурсов с одинаковым именем и проверить, какое устройство загружает какое. Vikram Bodicherla
Cyanogenmod.com / устройства / Samsung-Galaxy-s2, установите на S2 и повторите тест, чтобы увидеть плотность L7ColWinters
Я тестировал Викрама, и оба были взяты из папки высокой плотности ... L7, проблема не в S2. это с HTC изумлять отображение изображений меньше, чем ожидалось .. плюс не хочу повредить телефон S2 Snake

Ваш Ответ

4   ответа
2

Источникhttp: //www.androidauthority.com/htc-amaze-4g-vs-samsung-galaxy-s-ii-t-mobile-27110

С точки зрения размера экрана Samsung Galaxy S2 имеет немного больший экран с 4,52-дюймовым дисплеем. HTC Amaze 4G, с другой стороны, поставляется с экраном, схожим по размеру с международным вариантом Galaxy S2–4,3 дюйма.

HTC Amaze имеет более высокое разрешение и меньший физический экран. Это приводит к более высокой плотности пикселей, что означает меньшие физические пиксели, потому что большее их количество необходимо втиснуть в более узкое место.

Изображение, например, 240x160, будет выглядеть меньше на Amaze.

Указанные значения DPI для S2 явно неверны. В соответствии с приведенными показателями это 800/160 = 5 дюймов на длинной стороне и 480/160 = 3 дюйма на короткой стороне. Это дало бы размер экрана sqrt (5 * 5 + 3 * 3) = 5,8 дюймов.

Значения DPI для параметра Amaze верны. Как мы видим, если мы делаем простой Пифагор. Sqrt (960/258 ^ 2 + 540/256 ^ 2) = 4,27 "

Как разработчик, я испытываю то же самое при переходе от моего тестового устройства HTC Sensation и S2.

EDIT: мы говорим здесь о двух устройствах, которые оба "High Density". HTC имеет плотность 256 ppi, а S2 - 207 ppi. Я согласен, что изображения не будут точно такого же размера, но иметь их слишком много меньше (около половины размера) не имеет смысла. Может ли это потому, что S2 сообщает о значениях X / Y неправильно, что делает изображение большим? Я думал, что они не используются, хотя. Поскольку оба отчета DPI имеют значение 240. Люди, использующие HTC и Note, говорят, что карты слишком малы, чтобы их видеть. На моем S2 они большие. Что мне делать! Это побеждает то, что я узнаю о плотности и папке Snake
Мы говорим здесь о двух устройствах с высокой плотностью. HTC имеет плотность 256 ppi, а S2 - 207 ppi. Я согласен, что изображения не будут точно такого же размера, но иметь их слишком много меньше (около половины размера) не имеет смысла. Может ли быть так, что S2 неправильно сообщает значения X / Y? Я думал, что они не используются, хотя. Поскольку оба отчета DPI поддерживают 240 Snake
Как называется твоя игра? я буду счастлив протестировать его на моем HTC Sensation Glenn Bech
Проблема в том, что это не бесплатно, это называется Trex Snake
0

Я помню, что была ошибка, что xdpi и ydpi, о которых сообщалось, были полностью неверными, и, честно говоря, они выглядят неправильно.

Значения DPI для параметра Amaze верны. Как мы видим, если мы делаем простой Пифагор. Sqrt (960/258 ^ 2 + 540/256 ^ 2) = 4,27 " Glenn Bech
Моя ошибка, тогда Гленн. Извинения. Ray
0
Это не говорит, почему у меня проблема или как ее исправить. Моя проблема не в значениях X / Y, так как я их не использую. Я просто выкладываю их людям, чтобы они ответили на мой вопрос, если они им нужны. Моя проблема с размером изображения Snake
0

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

Подобно

оддержка @Galaxy SII layout-normal-hdpi

Подобно

Возможно, HTC удивит поддержкой макета большого экрана.

Так что попробуйте сделать макет в соответствии с устройством, и это решит вашу проблему.

Надеюсь, это поможет тебе.

Другие подробности того же вопроса на ваш вопрос: Android-макет вопрос-для-HTC-ево-3d

Наслаждайтесь кодированием. , , , :)

Оба экрана считаются обычными size.screen, поэтому использование другой папки макета не поможе Snake

Похожие вопросы