Xamarin FFImageLoading:加载到ImageButton中
在Xamarin.Android中,要使用FFImageLoading加载图像,必须使用ImageViewAsync而不是标准ImageViewXamarin FFImageLoading:加载到ImageButton中,xamarin,xamarin.android,ffimageloading,Xamarin,Xamarin.android,Ffimageloading,在Xamarin.Android中,要使用FFImageLoading加载图像,必须使用ImageViewAsync而不是标准ImageView 如果我想将图像加载到ImageButton中,我找不到可以使用的内容。未找到“ImageButtonAsync” AFAIK没有特定的ImageButton用于FFImageLoading,但您可以直接使用ImageViewAsync将其设置为android:clickable=“true”,并添加单击事件 如前所述,ImageButton只是一个默认
如果我想将图像加载到ImageButton中,我找不到可以使用的内容。未找到“ImageButtonAsync” AFAIK没有特定的
ImageButton
用于FFImageLoading,但您可以直接使用ImageViewAsync
将其设置为android:clickable=“true”
,并添加单击事件
如前所述,ImageButton
只是一个默认背景为非空的ImageView
,而且ImageButton.onSetAlpha()方法始终返回false,scaleType设置为居中,并且始终膨胀为可聚焦。因此,如果你需要这种行为,你可以添加它
另一种方法是创建可以处理图像加载的自定义ImageButton
。为此,您可以从imageviewsync
继承并添加前面段落中解释的行为。因此,您可以直接使用FFImageLoading API,因为此自定义控件继承了ImageViewAsync
除此之外,您还可以添加自定义加载逻辑,如从ImageLoaderTask
继承所述,并像ImageService.Instance.LoadImage(customImageTask)
最后,另一种方法(但有点粗俗和无性能)是创建一个imageviewsync
,仅用于保存FFImageLoading的结果,并在成功回调时在ImageButton
中设置可绘制项:
var myImageButton = myView.FindViewById<ImageButton>(Resource.Id.my_image_button);
var myImageView = new ImageViewAsync(this); // this is the context
ImageService.Instance.LoadUrl(this.Source[position].LogoImagePath)
.Success(() => myImageButton.SetImageDrawable(myImageView.Drawable))
.Into(myImageView);
var myImageButton=myView.findviewbyd(Resource.Id.my_image_按钮);
var myImageView=new-imageviewsync(this);//这就是背景
ImageService.Instance.LoadUrl(this.Source[position].LogoImagePath)
.Success(()=>myImageButton.SetImageDrawable(myImageView.Drawable))
.Into(myImageView);
您好,如果您需要任何帮助,请告诉我。不知道这是否相关。我给我的svg一个轻触手势,让它像按钮一样工作 首先在xaml中引用FFImageLoading.Svg.Forms
namespace:FFImageLoading.Svg.Forms;assembly=FFImageLoading.Svg.Forms"
第二,用轻触手势添加svgImage
<ffimageloadingsvg:SvgCachedImage Source="YourImageSource" >
<ffimageloadingsvg:SvgCachedImage.GestureRecognizers>
<TapGestureRecognizer NumberOfTapsRequired="1" Command="{Binding YourCommand}"/>
</ffimageloadingsvg:SvgCachedImage.GestureRecognizers>
</ffimageloadingsvg:SvgCachedImage>
创建绑定到xaml文件的属性
public ICommand YourCommand
{
get => yourCommand;
set => SetProperty(ref yourCommand, value);
}
private ICommand yourCommand;
Wait ExecuteYourCommandAsync是您创建的一个方法。在这里,你会把你的逻辑放在你真正想要的点击手势上
也可以使用命令通过对象。让met知道这是否合理我已更新了答案,以显示该命令在页面的ViewModel上的外观
public ICommand YourCommand
{
get => yourCommand;
set => SetProperty(ref yourCommand, value);
}
private ICommand yourCommand;