aspectFit не работает для изображения, сохраненного на устройстве Android

#android #xamarin

#Android #xamarin

Вопрос:

У меня проблема с отображением изображения на Android. Проблема не существует в IOS.

На моем экране отображается информация, включая изображение.

Иногда изображение берется из drawable (который всегда работает), а в других случаях это изображение, которое сохраняется на устройстве в папке System.Environment.SpecialFolder.Personal для Android и Environment.SpecialFolder.Resources для IOS.

Я обнаружил, что когда изображение из файла, сохраненного на устройстве, оно некорректно отображается на Android. Оно кажется крошечным.

Короче говоря, проблема возникает только на Android для изображений, сохраненных на устройстве. С отрисовкой все в порядке.

Это розничный образ

Вот соответствующий XAML…

 <ContentView x:Name="mainView" ControlTemplate="{StaticResource ButtonNavTemplate}">
    <ScrollView Orientation="Vertical" VerticalOptions="Fill">
        <Grid x:Name="mainGrid" RowSpacing="20" ColumnSpacing="0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto"></RowDefinition>
                    <RowDefinition Height="Auto"></RowDefinition>
                    <RowDefinition Height="Auto"></RowDefinition>
                    <RowDefinition Height="*"></RowDefinition>
                    <!--<RowDefinition Height="Auto"></RowDefinition>-->
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Image x:Name="categoryImage" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Aspect="AspectFill" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand"></Image>

                <Frame x:Name="retailerImageFrame" Grid.Row="0" Grid.RowSpan="3" Grid.Column="1" 
                       Padding="5" HorizontalOptions="Center" VerticalOptions="End">
                    <Image x:Name="retailerImage" Aspect="AspectFit"></Image>
                </Frame>
...
...
  

и часть кода, которая задает источник изображения…

     categoryImage.Source = ImageSource.FromFile(ImageService.GetSpendCategoryImagePath(this.retailer.SupplierCategoryId));
    var imageSource = ImageSource.FromFile(this.retailer.ImageFromAssets);
  

Как я уже сказал, на IOS все в порядке, поэтому я надеюсь, что мне не придется слишком много менять, но я возился уже пару дней и, похоже, не могу заставить изображение выглядеть одинаково во всех экземплярах.

Любые идеи и соображения были бы высоко оценены.

Комментарии:

1. Вы имеете в виду, что изображение сжимается сверху и снизу?

2. Трудно сказать. На моем Galkaxy S6 это просто неразличимый квадрат размером около 3 мм. Я могу почти сказать, что это правильное изображение, но, очевидно, неправильно масштабированное.

3. Вы пробовали использовать другие аспекты?

4. То же самое происходит и с эмуляторами Andoid. Небольшое изменение, но общая тема заключается в том, что это файл изображения, который НЕЛЬЗЯ отрисовывать. Размеры изображения такие же, как и у отображаемых, которые работают просто отлично.