Android ImageView Extra Spacing

时间:2014-11-01 03:47:07

标签: android imageview android-imageview

我使用ImgaeView将图片集成到我的应用页面中,现在图像右侧有多余的空间 android:adjustViewBounds="true" 不是答案
它不能解决间距问题
这是代码:

                <ImageView
                    android:id="@+id/f2lcase2"
                    android:layout_height="wrap_content"
                    android:adjustViewBounds="true"
                    android:scaleType="fitStart"
                    android:src="@drawable/f2lcase2" />

                <TextView
                    android:layout_height="wrap_content"
                    android:gravity="left"
                    android:text="Common F2L Cases" />

我没有足够的代表来发布图片,但图片和文字之间有很大的空间 谢谢!
修改
这是完整的XML:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.cube.F2l" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:orientation="horizontal" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
            android:id="@+id/tableRow0"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center" >

            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:padding="3dip"
                android:text="Common F2L Cases"
                android:textSize="20sp" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/f2lcase2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:adjustViewBounds="true"
                android:src="@drawable/f2lcase2" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Common F2L Cases" />
        </TableRow>

        <TableRow
            android:id="@+id/tableRow2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >

            <ImageView
                android:id="@+id/f2lcase3"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="left"
                android:adjustViewBounds="true"
                android:src="@drawable/f2lcase3" />
        </TableRow>
    </TableLayout>
</LinearLayout>

3 个答案:

答案 0 :(得分:0)

试试这个!

     <ImageView
            android:id="@+id/f2lcase2"
            android:layout_height="wrap_content"
            android:adjustViewBounds="true"
            android:scaleType="fitXY"
            android:src="@drawable/f2lcase2" />

        <TextView
            android:layout_height="wrap_content"
            android:gravity="left"
            android:text="Common F2L Cases" />

答案 1 :(得分:0)

尝试使用此代码可能会对您有所帮助:

public class MyImage extends ImageView {

public MyImage(final Context context, final AttributeSet attrs) {
    super(context, attrs);
}

@Override
protected void onMeasure(final int widthMeasureSpec, final int heightMeasureSpec) {
    final Drawable d = this.getDrawable();

    if (d != null) {
        // ceil not round - avoid thin vertical gaps along the left/right edges
    final int width = MeasureSpec.getSize(widthMeasureSpec);
    final int height = (int) Math.ceil(width * (float) d.getIntrinsicHeight() / d.getIntrinsicWidth());
        this.setMeasuredDimension(width, height);
    } else {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    }
  }
 }

在你的xml中这样做:

    <com.exmple.myview.MyImage
            android:id="@+id/ImageView3_Left"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:adjustViewBounds="true"
            android:src="@drawable/bg_2"

            ></com.exmple.myview.MyImage>

就是这样。这将解决你的问题。

答案 2 :(得分:0)

由于您的视图将重复多次,因此您可以使用ListView。因为您的图像是静态的,您可以简单地设置TextView的Left Drawable。下面是ListView

的一行的布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
 >

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="10dp"
    android:gravity="center_vertical"
    android:drawablePadding="5dp"
    android:drawableLeft="@drawable/yourImage"
    android:text="Common F2L Cases" />

</LinearLayout>