Dwa urządzenia, podobne gęstości, ale różne rozmiary obrazu?
OK jest problem, który mnie zastanawia, że naprawdę chciałbym, żebyś mi pomógł. Testuję moją aplikację zarówno z HTC amaze, jak i Galaxy S2 (jak wiem, oba są wysokiej gęstości) i oba w zakresie 3,7-4,3 ekranu
Problem polega na tym, że ten sam obraz wygląda inaczej pod względem wielkości na obu ekranach. W HTC zadziwia to, że jest znacznie mniejszy. Mam 3 foldery do rysowania o odpowiednich różnych rozmiarach (które i tak potrzebuję, ponieważ oba urządzenia mają tę samą gęstość)
Przeprowadziłem debugowanie na DisplayMatrics i odkryłem, że HTC zadziwia następujące rzeczy:
<code>density 1.5 desnityDPI 240 Height pixels:540 Width pixels:960 xdpi 258 ydpi 256 </code>
Jednak dla galaktyki S2 wskaźniki wyświetlania są następujące:
<code>density 1.5 desnityDPI 240 Height pixels:480 Width pixels:800 xdpi 160 ydpi 160 </code>
Czy ktoś może mi wyjaśnić, dlaczego rozmiary obrazów na obu urządzeniach są różne. W HTC zadziwisz zdjęcia są znacznie mniejsze niż na S2? Dziękuję Ci
Edytuj: Kod używany do uzyskania informacji o DP to
<code>DisplayMetrics mt =getApplicationContext().getResources().getDisplayMetrics(); </code>
EDYTOWAĆ:
<code><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); } </code>