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>