ffimageloading图像未在xamarin.forms

时间:2018-03-15 12:17:42

标签: xaml xamarin.forms cross-platform animated-gif ffimageloading

我正在开发Xamaring.Forms cross-platform应用,并希望在用户点击按钮连接到服务器时显示正在加载gif。 Everythink按预期工作,但gif图像未显示,即使我尝试使用不同格式的图像,我也看不到任何图像。

  • 我已安装ffimageloading所需的所有必需软件包,gif图片位于项目根目录drawable项目的android文件夹和Resources文件夹中IOS项目。
  • 我将Embedded Resource的属性提供给Android项目中的图片。
  • 我使用Android emulator来测试Android项目。
  • 我使用Xamarin Live Player来测试IOS项目

Hier是我的代码:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         xmlns:ff="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"  
         xmlns:ffSvg="clr-namespace:FFImageLoading.Svg.Forms;assembly=FFImageLoading.Svg.Forms"  
         xmlns:ffTransformations="clr-namespace:FFImageLoading.Transformations;assembly=FFImageLoading.Transformations"  
         x:Class="MyApp.Login"
         Title="Login"
         NavigationPage.HasNavigationBar="False">
<ContentPage.Padding>
    <OnPlatform x:TypeArguments="Thickness" iOS="0, 20, 0, 0"/>
</ContentPage.Padding>
<ContentPage.Content>
    <AbsoluteLayout BackgroundColor="White">

        <StackLayout VerticalOptions="StartAndExpand" AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All">
            <Image Source="Logo.png" Aspect="AspectFit"/>
            <StackLayout Padding="30, 10, 30, 0">
                <Label x:Name="errormessage" TextColor="Red"/>
                <Entry x:Name="EmailEntry" Placeholder="Email" Keyboard="Email" Margin="0, 10"/>
                <Entry x:Name="PasswordEntry" IsPassword="true" Placeholder="Password" />
                <Entry x:Name="CompanyEntry" Placeholder="Company" />
                <Button x:Name="LoginBtn" Pressed="Pressed_Handler" Text="Login" Clicked="Login_Handler" BackgroundColor="Black" TextColor="White" FontAttributes="Bold" Margin="90, 30" />
            </StackLayout>
        </StackLayout>

        <StackLayout x:Name="LoadingView" AbsoluteLayout.LayoutBounds="0,0,1,1" AbsoluteLayout.LayoutFlags="All" BackgroundColor="Black" Opacity="0.3">
        </StackLayout>

        <StackLayout x:Name="LoadingView2" AbsoluteLayout.LayoutBounds="0.5,0.5,200,200" AbsoluteLayout.LayoutFlags="PositionProportional" BackgroundColor="Black">
            <Label Text="Loading..." TextColor="White" FontAttributes="Bold" FontSize="30" VerticalOptions="Center"/>

            <!-- ------------- here is the gif image ----------------- -->
            <ff:CachedImage x:Name="Gif" Source="resource://MyApp.LoadingGif.gif" />
        </StackLayout>

    </AbsoluteLayout>
</ContentPage.Content>

1 个答案:

答案 0 :(得分:0)

这不是resource://的使用方式。它用于在common dll中共享同一个文件。您将其用作特定于平台的文件,请更改:

Source="resource://MyApp.LoadingGif.gif"Source="LoadingGif.gif"