2016-06-06 3 views
0

Ich habe einen viewpager mit imageviews und ich habe es wie folgt festgelegt:Unterstützung verschiedener Größen und Dichten Image

mViewPager.setPageMargin((int) getActivity().getResources().getDimension(R.dimen.view_pager_margin)); 

<dimen name="view_pager_margin">-250dp</dimen> 

Jetzt habe ich erstellt die folgenden Dateien dimens:

enter image description here

Aber wenn ich Nexus 5X und Nexus 6P Emulatoren starte, teilen sie beide die dimens.xml (xxhdpi) Datei und die Bilder sehen auf beiden nicht gut aus. Was wäre der beste Ansatz, damit meine Bilder auf jedem Gerät so aussehen können, wie sie sollen?

Antwort

0

Gemäß https://design.google.com/devices/ haben die 5X und 6P beide Abmessungen von 411 dp x 731 dp. Das 5X ist jedoch ein xxhdpi-Gerät, während das 6P-Gerät ein xxxhdpi-Gerät ist und daher verschiedene dimens.xml-Dateien verwendet.

Ich würde empfehlen, Ihre dimens.xml basierend auf tatsächlichen Bildschirmabmessungen anstatt Bildschirmdichte zu definieren. Zum Beispiel würde eine dimens-w400dp.xml für beide Geräte gelten.

https://developer.android.com/guide/practices/screens_support.html#NewQualifiers

+0

Ja, man ist ein xxhdpi Gerät und das andere ist xxxhdpi, aber aus irgendeinem Grund in meinem Projekt, sie beide die dimens aus der xxhdpi Datei. Ich habe eine dimens-w400dp.xml-Datei erstellt, aber ich bekomme das gleiche Problem, der Abstand zwischen den Bildern auf beiden Geräten sind unterschiedlich. – jlively

+0

'setPagerMargin (int)' erwartet eine Pixelgröße. Vielleicht versuchen Sie 'resources.getDimensionPixelSize'? – chessdork

+0

Vielen Dank für Ihre Mühe, aber ich bekomme immer noch das gleiche Ergebnis. Auf https://design.google.com/devices/ heißt es, dass 6P xxxhdpi ist, aber auf dem Emulator heißt es 6P ist xxhdpi. – jlively