2011-03-09 103 views
0

我的目標是在屏幕上的一條線上顯示6個圖像(1個圖像,6次)。我的方法是在LinearLayout中嵌套一個RelativeLayout。我的問題是,當我處於「肖像」模式時,我看不到所有的圖像。我調整圖像的尺寸越大,我可以適應的圖像就越多,但是我不希望它變得更小。我認爲,默認情況下,它會包裝它不適合的東西,但似乎並非如此。 Theres沒有自動重新調整大小以適應?另外,如何手動確定每張圖像之間有多少空間?謝謝!RelativeLayout中的ImageViews嵌套在LinearLayout中

回答

0

基本上,您需要爲您的應用程序提供兩個不同的xml文件,一個用於縱向,一個用於橫向格式:Providing Resources。 android會根據方向選擇合適的xml文件。

ImageView.ScaleType解釋了不同的縮放風格

這裏是我的建議:

res/layout-land/main.xml 

<?xml version="1.0" encoding="utf-8" ?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 
    <ImageView 
     android:id="@+id/debris_view" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:scaleType="fitCenter" 
     android:weight="1" 
     android:src="@drawable/image1" 
    </ImageView 
    ... repeat 5 more times ... 
</LinearLayout> 

weight元素應該讓他們都保持健康,而且有可能與scaleType衝突。無論如何應該爲你的風景做,人像,你既可以使它所以有圖像的兩行,或者你也可以如下使用horizontalScrollView

res/layout-port/main.xml 

<?xml version="1.0" encoding="utf-8" ?> 
<HorizontalScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal">   
     <ImageView 
      android:id="@+id/debris_view" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:scaleType="fitCenter" 
      android:weight="1" 
      android:padding="15dp" 
      android:src="@drawable/image1" 
     </ImageView 
     ... repeat 5 more times ... 
    </LinearLayout> 
</HorizontalScrollView>  

真的,你可以prolly只使用肖像main.xml作爲您唯一的佈局文件,並且無論方向如何都可以水平滾動。您可能需要更改一些時間在肖像main.xml因爲我在工作和林不知道如何與weighthorizontalScrollView

工作儘可能的每個元素之間的空間,你可以使用android:padding像我上面都有。

相關問題