2013-07-26 58 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"/> 
相關問題