在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);
文字根本没有显示。
我可以请一点帮忙吗?
提前致谢
答案 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>