Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在布局中安装ImageView和TextView_Android_Layout_Android Imageview - Fatal编程技术网

Android 在布局中安装ImageView和TextView

Android 在布局中安装ImageView和TextView,android,layout,android-imageview,Android,Layout,Android Imageview,我有以下项目的水平列表视图: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" > <ImageView android:id=

我有以下项目的水平列表视图:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/thumbnail"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingLeft="5dp"
        android:paddingRight="5dp"
        android:src="@drawable/a" />

    <TextView
        android:id="@+id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal"
        android:text="Title"
        android:textColor="#FFFFFF" />

</LinearLayout>

这基本上是缩略图和它下面的一些文本。问题是-当此项目显示在ListView中时,底部的文本仅部分可见-底部部分消失。看起来ImageView没有缩放以适应TextView

但是如果你把TextView放在ImageView上面,一切看起来都很好——ImageView被缩小了,文本非常适合。那么…为什么

让我举例说明:

底部的文本视图

顶部的文本视图(图像比例完美)

并根据请求main.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:orientation="vertical"
    android:weightSum="100" >

    <LinearLayout
        android:id="@+id/linearLayout0"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="10"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Top Activity Header"
            android:textAppearance="?android:attr/textAppearanceLarge" />
    </LinearLayout>

    <LinearLayout
        android:id="@+id/linearLayout1"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="90"
        android:orientation="vertical"
        android:weightSum="100" >

        <LinearLayout
            android:background="#6056CC"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="30"
            android:orientation="vertical" >

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Top"
                android:textAppearance="?android:attr/textAppearanceLarge" />
        </LinearLayout>

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="40" >

            <test.name.Coverflow
                android:id="@+id/coverflow"
                android:layout_width="wrap_content"
                android:layout_height="fill_parent" />
        </LinearLayout>

        <LinearLayout
            android:background="#BF5E76"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="30"
            android:orientation="vertical" >

        </LinearLayout>
    </LinearLayout>

    <LinearLayout
        android:layout_height="65dp"
        android:id="@+id/linearLayout2"
        style="@style/TabPanel">

    </LinearLayout>

</LinearLayout>

您可以使用相对布局进行此操作。它可能会对您有所帮助。下面的代码

     <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:orientation="vertical" >

   <ImageView
     android:id="@+id/thumbnail"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:paddingLeft="5dp"
     android:paddingRight="5dp"
     android:src="@drawable/a" />

   <TextView
    android:id="@+id/title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_horizontal"
    android:text="Title"
    android:textColor="#FFFFFF" 
    android:layout_below="@id/thumbnail"/>

    </RelativeLayout>

通过使用relativelayout,可以在imageview下设置textview,以便imageview和textview可以换行

编辑:


//这里是textview和imageview代码
//这里是红块代码
因此,现在整个红方块将位于上一个布局的下方。b是否有帮助


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@android:color/white"
    android:gravity="center_vertical" >

    <TableLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:gravity="center_vertical" >

        <TableRow
            android:layout_gravity="left"
            android:padding="5dp" >

            <ImageView
                android:id="@+id/thumbnail"
                android:layout_width="100dp"
                android:layout_height="100dp"
                android:paddingLeft="5dp"
                android:paddingRight="5dp"
                android:src="@drawable/a" 
                android:layout_gravity="left">
            </ImageView>
        </TableRow>

        <TableRow
            android:gravity="left"
            android:padding="5dp" >

            <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="5dp"
                android:textColor="@android:color/black"
                />
        </TableRow>
    </TableLayout>

</LinearLayout>

请试试这个。希望这能有所帮助。

嘿,我也遇到了同样的问题,这就是我为让它工作所做的:

<LinearLayout
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" 
            android:layout_gravity="center|center_vertical">

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="0dip"
                android:layout_weight="2"
                android:adjustViewBounds="true"
                android:scaleType="fitEnd"
                android:layout_gravity="center|center_vertical"
                android:src="@drawable/ic_pen" />

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="0dip"
                android:layout_weight="1"
                android:layout_gravity="center|center_vertical"
                android:text="@string/main_write"
                android:textColor="@color/color_darkgray"
                android:textSize="24sp" />
        </LinearLayout>


诀窍是将TextView和ImageView的布局高度设置为“0dip”。将ImageView的布局权重设置为“2”,将TextView的布局权重设置为“1”。将ImageView的scaleType设置为“fitEnd”。将adjustViewBounds设置为“true”等等!甚至在你放大和缩小尺寸时也能工作,这样你就不会丢失文本视图,只有图像会缩小。

结果与使用LinearLayout相同:(我用截图更新了问题。你能发布完整的xml文件吗……可能是在我的回答中检查编辑部分,而不是给出**adroid:layout\u width=“wrap\u content”android:layout\u height=“wrap_content”**对于ImageView,请尝试指定其高度和宽度。这是一个坏主意。我希望它可以缩放以适应不同的屏幕大小。使用相对测量值,如密度独立像素单位(dp),wrap_content,或fill_parent,是一种更好的方法,因为它有助于确保应用程序在各种设备屏幕大小上正确显示。请确保在dp中指定布局参数,如我在回答中所示。是的,我在dp中指定了参数。在480x800上看起来不错,但在更高分辨率的图像上,因为我越来越小,有很多额外的空间。底部的红色块代表什么?它可能与文本重叠吗?现在它只是空的线性布局和背景色。我用不同的颜色给块上色,以确保它们不重叠。
<LinearLayout
            android:layout_width="0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:orientation="vertical" 
            android:layout_gravity="center|center_vertical">

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="wrap_content"
                android:layout_height="0dip"
                android:layout_weight="2"
                android:adjustViewBounds="true"
                android:scaleType="fitEnd"
                android:layout_gravity="center|center_vertical"
                android:src="@drawable/ic_pen" />

            <TextView
                android:id="@+id/textView1"
                android:layout_width="wrap_content"
                android:layout_height="0dip"
                android:layout_weight="1"
                android:layout_gravity="center|center_vertical"
                android:text="@string/main_write"
                android:textColor="@color/color_darkgray"
                android:textSize="24sp" />
        </LinearLayout>