在ImageView下方显示文本

时间:2014-06-22 11:25:30

标签: android android-layout xamarin android-imageview textview

Xamarin中,我有一个ViewPager,其中包含一些片段,每个片段在Bitmap中显示一个简单的ImageView

我需要为每个片段在每个图像下面添加一些文字。

以下是我每个片段的当前ViewPagerItemWithImage布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

以下是相关的OnCreateView代码:

rootView = inflater.Inflate(Resource.Layout.ViewPagerItemWithImage, container, false);
imageView = rootView.FindViewById<ImageView>(Resource.Id.image);
DownloadAsyncBitmap (imageURI, imageView);
imageView.SetScaleType (ImageView.ScaleType.Center);

我是否可以帮助编写一些类似于上述代码的代码,但是在ImageView下方显示了一些文字?

这是我到目前为止所做的:

ViewPagerItemWithImageAndText布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
    <TextView
        android:id="@+id/myImageViewText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/image"
        android:layout_alignTop="@+id/image"
        android:layout_alignRight="@+id/image"
        android:layout_alignBottom="@+id/image"
        android:layout_margin="1dp"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:text="This is an image"
        android:textColor="#000000" />
</LinearLayout>

OnCreateView代码:

rootView = inflater.Inflate(Resource.Layout.ViewPagerItemWithImageAndText, container, false);
imageView = rootView.FindViewById<ImageView>(Resource.Id.image);
textView = rootView.FindViewById<TextView>(Resource.Id.myImageViewText);
DownloadAsyncBitmap (imageURI, imageView);

文字根本没有显示。

我可以请一点帮忙吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

试用此代码:for ViewPagerItemWithImageAndText layout code:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
    <TextView
        android:id="@+id/myImageViewText"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/image"
        android:layout_alignTop="@+id/image"
        android:layout_alignRight="@+id/image"
        android:layout_alignBottom="@+id/image"
        android:layout_margin="1dp"
        android:gravity="center"
        android:layout_gravity="center_horizontal"
        android:text="This is an image"
        android:textColor="#000000" />
</LinearLayout>

下方属性会垂直排列您的项目,因此您的文本视图也会变为图像下方。

 android:orientation="vertical"

答案 1 :(得分:1)

您正在为您的imageview dur分配match_parent宽度和高度,textview将无法在图片视图的布局更改高度中显示空间到某个值,或者使用framelayout但是会在imageview上将文本显示为叠加。 使用此代码          

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="9"
    android:orientation="vertical" >

    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="fitXY"
        android:layout_weight="1"
        android:src="@drawable/abc_ab_bottom_solid_dark_holo" />

</LinearLayout>

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

</LinearLayout>

答案 2 :(得分:1)

尝试以下代码:

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

<ImageView
    android:id="@+id/image"
    android:layout_width="match_parent"
    android:layout_height="0dp" 
    android:layout_weight="7"
    />

<TextView
    android:id="@+id/myImageViewText"
    android:layout_width="wrap_content"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:layout_gravity="center_horizontal"
    android:layout_margin="1dp"
    android:gravity="center"
    android:text="This is an image"
    android:textColor="#000000" />
</LinearLayout>