[英]How to rotate images that are being dynamically loaded into a list view
我有一个列表视图:
<ListView Grid.Row="1" x:Name="invList" ItemSelected="invListSelected" RowHeight="50" VerticalOptions="FillAndExpand">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="64"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="64"/>
</Grid.ColumnDefinitions>
<Image Grid.Row="0" Grid.Column="0" Margin="5,5,5,5" HorizontalOptions="Center" Source="{Binding SourceImage}" VerticalOptions="Center" Aspect="AspectFit"/>
<Label Grid.Row="0" Grid.Column="1" Margin="0,0,0,3" Text="{Binding Content}" VerticalOptions="Center" VerticalTextAlignment="Center" FontSize="Medium" LineBreakMode="TailTruncation"/>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
正在使用以下C#代码填充此列表视图:
InvStrucSync structureSync = new InvStrucSync();
structureData = await structureSync.GetStructures(viewModel.CompanyData.company_id);
foreach (Structure structure in structureData)
{
if (structure.archived == "True")
continue;
var lt = new ListTemplate(structure.id, structure.name, ImageSource.FromFile("default_image.png"));
if (!string.IsNullOrEmpty(structure.photos))
if (structure.photos.Length % 4 == 0)
{
lt.SourceImage = ImageSource.FromStream(() => new MemoryStream(Convert.FromBase64String(structure.photos)));
var directories = ImageMetadataReader.ReadMetadata(new MemoryStream(Convert.FromBase64String(structure.photos)));
if (Device.Android == "Android")
{
foreach (var directory in directories)
foreach (var tag in directory.Tags)
if (tag.Name == "Orientation")
{
if (tag.Description == "Top, left side(Horizontal / normal)")
{
}
else if (tag.Description == "Left side, bottom (Rotate 270 CW)")
{
}
else if (tag.Description == "Right side, top (Rotate 90 CW")
{
//Rotate image
}
}
}
}
listDisplay.Add(lt);
}
基本上,以上代码循环遍历从数据库中提取的数据,然后创建一个ListTemplate,然后将其添加到列表显示中并显示给用户。 我想在列表视图中旋转刚创建的特定项目的图像。 但是,我不确定如何引用新创建的图像。 他们是我可以创建图像并将图像旋转一定程度的一种方法吗?
谢谢。
看看FFImageLoading插件 。 您应该可以通过在RotateTransformation
上Binding
“ Degree
属性来执行RotateTransformation
-您可能希望/需要使用转换器。 查看RotateTransformation
FFImageLoading示例以获取想法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.