2013-07-26 3 views
0

У меня есть другой масштаб ImageView на моем реальном устройстве (телефоне) и эмуляторе. Эмулятор правильно отображает изображение, но реальное устройство (телефон) этого не делает. Изображение становится меньше на экране устройства (телефона).imageView Масштаб верный на эмуляторе, но не на устройстве

это мой Java-код:

... 

rootView = (ViewGroup) inflater.inflate(R.layout.arabic_page, container, false); 
waraka = (ImageView) rootView.findViewById(R.id.waraka); 
... 
    InputStream istr; 
      try { 
//Search in OBB 
    istr = getExpansionFile().getInputStream(num_image+".png"); 
    Bitmap bitmap = BitmapFactory.decodeStream(istr); 
    Drawable draw =new BitmapDrawable(getResources(),bitmap); 
    waraka.setImageDrawable(draw); 

и это мой код макета:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:tools="http://schemas.android.com/tools" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#FFFFFF" 
     tools:context=".MainActivity"> 
     <ImageView 
      android:id="@+id/waraka" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentTop="true" 
      android:scaleType="fitCenter"/></RelativeLayout> 
+0

что вы хотите, чтобы произошло? Изображение должно быть того же относительного размера (относительно макета)? – Simon

ответ

0

У вас есть "wrap_content" как для вашего layout_width и layout_height. В зависимости от разрешения на dpi вашего телефона это будет разных размеров. Вам нужно будет указать размер в dps, если вы хотите, чтобы определенный размер выглядел относительно одинаковым для нескольких устройств. Таким образом изменить вид изображения, чтобы быть:

<ImageView 
     android:id="@+id/waraka" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentTop="true" 
     android:scaleType="fitCenter"/> 
0

Вы должны прочитать по этой ссылке тщательно, чтобы понять различные размеры экрана: Android Screens Support

Скорее всего, что происходит в том, что ваш телефон имеет гораздо более высокую плотность экрана, чем эмулятор, поэтому все меньше. Вместо этого попробуйте использовать независимые от плотности пиксели (dp).

0

Это происходит потому, что эмулятор и телефон не имеют одинакового разрешения экрана, поэтому вы не можете быть уверены, сколько места будет занимать изображение в вашем макете, если вы не установите его в размерных точках (dp) так:

Во-первых: почему вы используете как:

android:layout_alignParentBottom="true" 
android:layout_alignParentTop="true" 

Во-вторых, я думаю, что этот код будет работать для вас:

<ImageView 
      android:id="@+id/waraka" 
      android:layout_width="100dp" 
      android:layout_height="100dp" 
      android:layout_gravity="center" 
      android:scaleType="fitXY"/> 
Смежные вопросы