文本视图可见性 xamarin android
textview visibility xamarin android
我创建了一个图像视图,并在其上方创建了一个文本视图。我的目标是如果有图像我想显示我的图像视图,如果没有我想删除图像视图并显示显示“无图像”的文本视图,这是我的 xml 代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Item Image: "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView9"
android:textColor="@android:color/holo_blue_dark"/>
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/imageView1"
android:layout_toRightOf="@id/textView9"/>
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="No Image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView10"
android:layout_toRightOf="@id/textView9"
/>
</RelativeLayout>
这是我的代码:
ImageView imgv = view.FindViewById<ImageView>(Resource.Id.imageView1);
textview10 = view.FindViewById<TextView>(Resource.Id.textView10);
textview10.Visibility = ViewStates.Invisible;
private void Ws_getimg_clrCompleted(object sender, WSitems.getimg_clrCompletedEventArgs e)
{
Byte[] data = e.Result.datab;
if (data != null)
{
MemoryStream mem = new MemoryStream(data);
Android.Graphics.Bitmap originBitmap = BitmapFactory.DecodeStream(mem);
imgv.SetImageBitmap(originBitmap);
}
else
{
imgv.Visibility = ViewStates.Gone;
textview10.Visibility = ViewStates.Visible;
}
}
我从网络服务获取图像。问题是当没有图像但 textview 不可见时,只有 imageview 正在消失。为什么?我应该怎么办?提前致谢。
您可以使用 FFImageLoading 替换您的 webservice
来加载互联网上的图像。
ImageView imageView1 = FindViewById<ImageView>(Resource.Id.imageView1);
TextView textView10 = FindViewById<TextView>(Resource.Id.textView10);
textView10.Visibility = ViewStates.Invisible;
// string urlToImage = "http://www.123raw.com/includes/templates/custom/images/123raw_mainpic_01.jpg";
string urlToImage = "http://www.123raw.com/includes/templates/custom/images/12311raw_mainpic_01.jpg";
var config = new FFImageLoading.Config.Configuration()
{
ExecuteCallbacksOnUIThread = true
};
ImageService.Instance.Initialize(config);
ImageService.Instance.LoadUrl(urlToImage).Error(exception =>
{
imageView1.Visibility = ViewStates.Gone;
textView10.Visibility = ViewStates.Visible;
}).Into(imageView1);
这里是运行GIF,如果图片加载不出来
这是我的代码:
Task<Stream> GetStreamFromImageByte(CancellationToken ct)
{
//Since we need to return a Task<Stream> we will use a TaskCompletionSource>
TaskCompletionSource<Stream> tcs = new TaskCompletionSource<Stream>();
if (data != null)
{
tcs.TrySetResult(new MemoryStream(data));
}
return tcs.Task;
}
private void Ws_getimg_clrCompleted(object sender, WSitems.getimg_clrCompletedEventArgs e)
{
data = e.Result.datab;
var config = new FFImageLoading.Config.Configuration()
{
ExecuteCallbacksOnUIThread = true
};
ImageService.Instance.Initialize(config);
ImageService.Instance.LoadStream(GetStreamFromImageByte).Error(exception =>
{
imgv.Visibility = ViewStates.Gone;
textview10.Visibility = ViewStates.Visible;
}).Into(imgv);
我创建了一个图像视图,并在其上方创建了一个文本视图。我的目标是如果有图像我想显示我的图像视图,如果没有我想删除图像视图并显示显示“无图像”的文本视图,这是我的 xml 代码:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="Item Image: "
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView9"
android:textColor="@android:color/holo_blue_dark"/>
<ImageView
android:src="@android:drawable/ic_menu_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px"
android:id="@+id/imageView1"
android:layout_toRightOf="@id/textView9"/>
<TextView
android:textAppearance="?android:attr/textAppearanceMedium"
android:text="No Image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/textView10"
android:layout_toRightOf="@id/textView9"
/>
</RelativeLayout>
这是我的代码:
ImageView imgv = view.FindViewById<ImageView>(Resource.Id.imageView1);
textview10 = view.FindViewById<TextView>(Resource.Id.textView10);
textview10.Visibility = ViewStates.Invisible;
private void Ws_getimg_clrCompleted(object sender, WSitems.getimg_clrCompletedEventArgs e)
{
Byte[] data = e.Result.datab;
if (data != null)
{
MemoryStream mem = new MemoryStream(data);
Android.Graphics.Bitmap originBitmap = BitmapFactory.DecodeStream(mem);
imgv.SetImageBitmap(originBitmap);
}
else
{
imgv.Visibility = ViewStates.Gone;
textview10.Visibility = ViewStates.Visible;
}
}
我从网络服务获取图像。问题是当没有图像但 textview 不可见时,只有 imageview 正在消失。为什么?我应该怎么办?提前致谢。
您可以使用 FFImageLoading 替换您的 webservice
来加载互联网上的图像。
ImageView imageView1 = FindViewById<ImageView>(Resource.Id.imageView1);
TextView textView10 = FindViewById<TextView>(Resource.Id.textView10);
textView10.Visibility = ViewStates.Invisible;
// string urlToImage = "http://www.123raw.com/includes/templates/custom/images/123raw_mainpic_01.jpg";
string urlToImage = "http://www.123raw.com/includes/templates/custom/images/12311raw_mainpic_01.jpg";
var config = new FFImageLoading.Config.Configuration()
{
ExecuteCallbacksOnUIThread = true
};
ImageService.Instance.Initialize(config);
ImageService.Instance.LoadUrl(urlToImage).Error(exception =>
{
imageView1.Visibility = ViewStates.Gone;
textView10.Visibility = ViewStates.Visible;
}).Into(imageView1);
这里是运行GIF,如果图片加载不出来
这是我的代码:
Task<Stream> GetStreamFromImageByte(CancellationToken ct)
{
//Since we need to return a Task<Stream> we will use a TaskCompletionSource>
TaskCompletionSource<Stream> tcs = new TaskCompletionSource<Stream>();
if (data != null)
{
tcs.TrySetResult(new MemoryStream(data));
}
return tcs.Task;
}
private void Ws_getimg_clrCompleted(object sender, WSitems.getimg_clrCompletedEventArgs e)
{
data = e.Result.datab;
var config = new FFImageLoading.Config.Configuration()
{
ExecuteCallbacksOnUIThread = true
};
ImageService.Instance.Initialize(config);
ImageService.Instance.LoadStream(GetStreamFromImageByte).Error(exception =>
{
imgv.Visibility = ViewStates.Gone;
textview10.Visibility = ViewStates.Visible;
}).Into(imgv);