缩放ImageView上的额外左右填充

时间:2014-05-06 01:39:26

标签: android imageview padding

我有这个布局:

    <FrameLayout
        android:id="@+id/artwork_detected_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="20dip"
        android:layout_marginLeft="18dip"
        android:layout_marginTop="20dip"
        android:padding="6dip" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/txt_favourites"
            android:textColor="@color/welcome_textcolor"
            android:textSize="24sp" />
    </FrameLayout>

    <ImageView
        android:id="@+id/btn_detect"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/artwork_detected_text"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/artwork_detected_text"
        android:layout_centerVertical="true"
        android:adjustViewBounds="true"
        android:src="@drawable/detect_btn" />

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/artwork_detected_text"
        android:layout_alignTop="@id/artwork_detected_text"
        android:layout_centerVertical="true"
        android:layout_toLeftOf="@id/btn_detect"
        android:adjustViewBounds="true"
        android:src="@drawable/back_btn" />
</RelativeLayout>

这就是它在eclipse图形布局中的样子

enter image description here

如果您注意到右侧两个ImageView的左侧和右侧有不需要的填充。 如何在没有

的情况下删除它
  • 指定图像的绝对宽度/高度(我希望它们从左侧的TextView中对齐顶部和alignBottom)

  • 具有负边距/填充(必须根据屏幕密度进行调整)

我已经将adjustViewBounds属性设置为true,正如您在代码中看到的那样,但显然它只修复了ImageViews顶部和底部不需要的填充,所以它在这里基本没用。

其他信息: 图像很大 - 比显示的图像大。但正如你在这里看到的那样,它们正在缩放。不,他们没有透明的填充物。

1 个答案:

答案 0 :(得分:2)

您可以在RelativeLayout中使用LinearLayout,例如:

<RelativeLayout
    android:id="@+id/top_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/favorites_top_bar" >

    <FrameLayout
        android:id="@+id/artwork_detected_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_centerVertical="true"
        android:layout_marginBottom="20dip"
        android:layout_marginLeft="18dip"
        android:layout_marginTop="20dip"
        android:padding="6dip" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/txt_artword_detected"
            android:textColor="@color/welcome_textcolor"
            android:textSize="24sp" />
    </FrameLayout>

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@id/artwork_detected_text"
        android:layout_alignParentRight="true"
        android:layout_alignTop="@id/artwork_detected_text"
        android:layout_centerVertical="true"
        android:layout_toRightOf="@id/artwork_detected_text"
        android:background="@color/favorites_top_bar"
        android:gravity="center_vertical|right"
        android:orientation="horizontal"
        android:paddingRight="10dip" >

        <ImageView
            android:id="@+id/btn_detect"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/detect_btn" />

        <View
            android:layout_width="6dip"
            android:layout_height="wrap_content" >
        </View>

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:src="@drawable/back_btn" />
    </LinearLayout>
</RelativeLayout>