2012-02-29 81 views
0

我已經實現了一個LinearLayout,在左側(從上至下)使用高/窄圖像,在右側使用Horizo​​ntalScrollView來顯示長圖像。Android:Horizo​​ntalScrollView和圖像包裝

問題是我沒有設法正確處理Horizo​​ntalScrollView。它沒有顯示圖像的左側部分(我無法在那個方向上滾動),並且可以滾動到另一側的圖像邊界之外......

屏幕截圖,滾動到最左邊可能的(請注意,圖像的左側部分已被裁剪),儘可能靠右(注意所有空白區域)以及源圖像都在http://folk.ntnu.no/anderfo/pics/temp/android/(共4張圖像)提供。
(我想他們在這裏顯示,不過根據我#1沒有足夠高的「信譽」,發佈圖片...抱歉。)

我已經試過包裝的圖像和不同類型Horizo​​ntalScrollView,但問題總是相同的。

此外,我有左圖像的麻煩;包裝不起作用,所以它的兩側都有空白區域。

這是很難解釋的,所以我反而給你提出這個問題的一些示例代碼:

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:adjustViewBounds="true" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:id="@+id/leftContainer" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:adjustViewBounds="true" 
     android:orientation="horizontal" > 
     <ImageView 
      android:id="@+id/ivExampleBar" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:paddingLeft="0dp" 
      android:paddingRight="0dp" 
      android:contentDescription="Bar on the left side" 
      android:src="@drawable/examplebar" /> 
    </LinearLayout> 

    <HorizontalScrollView 
     android:id="@+id/hscroll" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="left" 
     android:scrollbarFadeDuration="0"> 

     <LinearLayout 
       android:id="@+id/container" 
       android:layout_width="wrap_content" 
       android:layout_height="fill_parent" 
       android:layout_gravity="center_horizontal" 
       android:orientation="horizontal" > 

       <ImageView 
       android:id="@+id/ivExampleImg" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center" 
       android:contentDescription="Big scrollable image" 
       android:src="@drawable/exampleimg" 
      /> 
     </LinearLayout> 
    </HorizontalScrollView> 

</LinearLayout> 

的Java文件(我試過ScrollTo以便也顯示出圖像的左側部分,但它僅適用於特定的分辨率/電話...):

import android.app.Activity; 
    import android.os.Bundle; 
    import android.view.Window; 
    import android.view.WindowManager; 
    import android.widget.LinearLayout; 

    public class TestActivity extends Activity { 

     //private LinearLayout scrollContainer; 

     @Override 
     public void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      // FULL SCREEN 
      requestWindowFeature(Window.FEATURE_NO_TITLE); 
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); 
      this.setContentView(R.layout.testlayout); 

      //scrollContainer = (LinearLayout) findViewById(R.id.container); 
      //scrollContainer.scrollTo(-195, 0); 


     } 

     @Override 
     protected void onPause(){ 
      super.onPause(); 
      finish(); 
     } 
    } 

你有對這些問題有什麼幫助?

  • 使Horizo​​ntalScrollView纏上了我的形象所以有周圍沒有空白
  • 使其能夠一路滾動到圖像
  • 的邊界避免周圍的左圖像的白色空間

乾杯,
安德斯

從ChristopheCVB(仍與白色空間問題上的幫助後

更新XML文件這兩個圖片):

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:adjustViewBounds="true" 
    android:orientation="horizontal" > 

    <ImageView 
     android:id="@+id/ivExampleBar" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:paddingLeft="0dp" 
     android:paddingRight="0dp" 
     android:layout_alignParentLeft="true" 
     android:contentDescription="Bar on the left side" 
     android:src="@drawable/examplebar" /> 

    <HorizontalScrollView 
     android:id="@+id/hscroll" 
     android:layout_width="wrap_content" 
     android:layout_height="fill_parent" 
     android:layout_gravity="left" 
     android:layout_toRightOf="@+id/ivExampleBar" 
     android:scrollbarFadeDuration="0"> 
     <ImageView 
      android:id="@+id/ivExampleImg" 
      android:layout_width="wrap_content" 
      android:layout_height="fill_parent" 
      android:contentDescription="Big scrollable image" 
      android:src="@drawable/exampleimg" /> 
    </HorizontalScrollView> 
</RelativeLayout> 

回答

0

嘗試在要被包裹的所有視圖/佈局設置WRAP_CONTENT ...

+0

將寬度設置爲除LinearLayout父級之外的所有視圖上的wrap_content ...高度應與屏幕高度s相同o我已經將它設置爲fill_parent用於ImageView和horizo​​ntalScrollView。 – anderfo 2012-02-29 22:43:38

+0

因此,圖像視圖獲得與其父級相同的寬度/高度,linearlayout,請嘗試使用相關佈局。 – ChristopheCVB 2012-02-29 22:46:32

+0

任何剩餘空間都填充在線性佈局中,因此imageview佔用所有可用空間。 – ChristopheCVB 2012-02-29 22:49:32