我已經實現了一個LinearLayout,在左側(從上至下)使用高/窄圖像,在右側使用HorizontalScrollView來顯示長圖像。Android:HorizontalScrollView和圖像包裝
問題是我沒有設法正確處理HorizontalScrollView。它沒有顯示圖像的左側部分(我無法在那個方向上滾動),並且可以滾動到另一側的圖像邊界之外......
屏幕截圖,滾動到最左邊可能的(請注意,圖像的左側部分已被裁剪),儘可能靠右(注意所有空白區域)以及源圖像都在http://folk.ntnu.no/anderfo/pics/temp/android/(共4張圖像)提供。
(我想他們在這裏顯示,不過根據我#1沒有足夠高的「信譽」,發佈圖片...抱歉。)
我已經試過包裝的圖像和不同類型HorizontalScrollView,但問題總是相同的。
此外,我有左圖像的麻煩;包裝不起作用,所以它的兩側都有空白區域。
這是很難解釋的,所以我反而給你提出這個問題的一些示例代碼:
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();
}
}
你有對這些問題有什麼幫助?
- 使HorizontalScrollView纏上了我的形象所以有周圍沒有空白
- 使其能夠一路滾動到圖像
- 的邊界避免周圍的左圖像的白色空間
乾杯,
安德斯
更新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>
將寬度設置爲除LinearLayout父級之外的所有視圖上的wrap_content ...高度應與屏幕高度s相同o我已經將它設置爲fill_parent用於ImageView和horizontalScrollView。 – anderfo 2012-02-29 22:43:38
因此,圖像視圖獲得與其父級相同的寬度/高度,linearlayout,請嘗試使用相關佈局。 – ChristopheCVB 2012-02-29 22:46:32
任何剩餘空間都填充在線性佈局中,因此imageview佔用所有可用空間。 – ChristopheCVB 2012-02-29 22:49:32