为什么我的9张照片被拉到右边?

时间:2013-07-17 14:31:55

标签: java android xml image user-interface

我有这个图像(@drawable/engines_bg),作为我的水平滚动视图: enter image description here

你可以看到三角形正好在中间。

然而,当我运行我的Activity时,三角形向左关闭:

(如果你用滚筒测量)

enter image description here

怎么可能?

我已经检查过,代码中没有重新定位。

这是我的xml:

<com.w.view.title.TitleBar
    android:id="@+id/titleBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<ListView
    android:id="@+id/searchResultsList"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/searchButtonBar"
    android:layout_below="@id/titleBar"
    android:cacheColorHint="#00000000"
    android:divider="@null"
    android:fadingEdge="none"
    android:scrollbars="none" />

<com.w.navigate.SearchButtonsBarHorizontalScrollView
    android:id="@+id/searchButtonBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@drawable/engines_bg"
    android:fadingEdge="horizontal"
    android:gravity="center"
    android:padding="0dp"
    android:scrollbars="none" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:orientation="horizontal"
        android:paddingTop="25dp" >

        <ImageButton
            android:id="@+id/leftMargin"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/search_engine_button"
            android:visibility="invisible" />

        <ImageButton
            android:id="@+id/searchButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/search_engine_button"
            android:onClick="engineClicked" />

        <ImageButton
            android:id="@+id/searchButton2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/search_engine_button"
            android:onClick="engineClicked" />

      <ImageButton
            android:id="@+id/rightMargin"
            android:layout_width="160dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:background="@drawable/search_engine_button"
            android:visibility="invisible" />
    </LinearLayout>
</com.w.navigate.SearchButtonsBarHorizontalScrollView>

<LinearLayout
    android:id="@+id/searchProgressPopup"
    android:layout_width="180dp"
    android:layout_height="140dp"
    android:layout_centerInParent="true"
    android:background="@drawable/semi_transparent_bg"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:visibility="invisible" >

    <com.w.view.map.ProgressAnimation
        android:id="@+id/searchProgressAnimation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1" />

    <TextView
        android:id="@+id/searchProgressText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="5dp"
        android:gravity="center"
        android:textColor="#FFFFFF" />
</LinearLayout>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="6dp"
    android:layout_below="@id/titleBar"
    android:scaleType="fitXY"
    android:src="@drawable/topbar_shadow" />

更新

我尝试过@ Brian的解决方案,但这一切都搞混了:

<com.w.view.title.TitleBar
    android:id="@+id/titleBar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

<ListView
    android:id="@+id/searchResultsList"
    android:layout_width="fill_parent"
    android:layout_height="match_parent"
    android:layout_above="@+id/searchButtonBarWrapper"
    android:layout_below="@id/titleBar"
    android:cacheColorHint="#00000000"
    android:divider="@null"
    android:fadingEdge="none"
    android:scrollbars="none" />

<LinearLayout
    android:id="@+id/searchButtonBarWrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:background="@drawable/engines_bg"
    android:orientation="horizontal" >

    <com.w.navigate.SearchButtonsBarHorizontalScrollView
        android:id="@+id/searchButtonBar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fadingEdge="horizontal"
        android:gravity="center"
        android:padding="0dp"
        android:scrollbars="none" >

        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:paddingTop="25dp" >

            <ImageButton
                android:id="@+id/leftMargin"
                android:layout_width="160dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:visibility="invisible" />

            <ImageButton
                android:id="@+id/searchButton1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton4"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/searchButton5"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:onClick="engineClicked" />

            <ImageButton
                android:id="@+id/rightMargin"
                android:layout_width="160dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:background="@drawable/search_engine_button"
                android:visibility="invisible" />
        </LinearLayout>
    </com.w.navigate.SearchButtonsBarHorizontalScrollView>
</LinearLayout>

<LinearLayout
    android:id="@+id/searchProgressPopup"
    android:layout_width="180dp"
    android:layout_height="140dp"
    android:layout_centerInParent="true"
    android:background="@drawable/semi_transparent_bg"
    android:gravity="center_horizontal"
    android:orientation="vertical"
    android:visibility="invisible" >

    <com.w.view.map.ProgressAnimation
        android:id="@+id/searchProgressAnimation"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:layout_weight="1" />

    <TextView
        android:id="@+id/searchProgressText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginBottom="5dp"
        android:gravity="center"
        android:textColor="#FFFFFF" />
</LinearLayout>

<ImageView
    android:layout_width="match_parent"
    android:layout_height="6dp"
    android:layout_below="@id/titleBar"
    android:scaleType="fitXY"
    android:src="@drawable/topbar_shadow" />

结果:

enter image description here

Uapdte2:尝试过Luksprog的9.png

我有两个问题:

1)可见1个像素点

2)箭头是strathed

3)我在两个文件夹中说原始9.png。我怎么知道我的设备与哪一个有关?

enter image description here

1 个答案:

答案 0 :(得分:0)

你的九个补丁图像太大而无法由ScrollView处理,所以箭头不会进入你想要它的中间。因此,通过简单地从箭头的左侧和右侧取出两个相等的块并添加拉伸点(应该相等),使九个补丁图像的宽度变小(这将是九个补丁与常规图像的优点之一)所以图像按比例拉伸。)

这是我的尝试(应该保存为the_image_etc.9.png):

enter image description here

如果你错过某处的透明度,可能是因为我保存了这个错误,但获取图像的一般方法是在上面。

  

我将原始9.png保存在两个文件夹中。我怎么知道我的哪一个   设备涉及?

当使用九个补丁时,您需要为每个密度可绘制文件夹设置一个版本(因此图像本身不会使用另一个密度文件夹中的图像调整大小),您不需要版本对于不同尺寸的屏幕(这是九个补丁的优点,他们通过扩展自己来解决尺寸问题)。