如何以Xamarin格式创建图像蒙版?

问题描述 投票:-1回答:1

让我更具体:我在网上找到了许多剪裁到框架或其他形状的图像的示例,但我需要创建一种由png图像制成的模板,该模板中有一个孔,并将用户图像放在该孔中,可能居中。如何以xamarin形式实现?最初,我考虑过将蒙版图像包装在框架中,但是要在孔本身中添加辅助图像非常困难,因此我尝试使用AbsoluteLayout进行定位,但是它不符合我的需要,这是xaml代码,非常简单:

  <ContentView.Content>
        <AbsoluteLayout>
            <Image Source="ftoast.jpg" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="0,0,1,1" />
            <Image Source="temp1.png" AbsoluteLayout.LayoutFlags="All" AbsoluteLayout.LayoutBounds="1,1,1,1" />
        </AbsoluteLayout>
  </ContentView.Content>
</ContentView>

这是我实际上想要实现的目标:

enter image description here

如您所见,图像(薄煎饼)并非完全位于蒙版的顶部,但有少许边框。请记住,我必须将内部图像偏移量保存在某个位置以动态创建模板。

c# xaml xamarin xamarin.forms cross-platform
1个回答
0
投票

看来使用绝对布局是实现这一目标的最简单方法:我没有单独使用两个图像,而是添加了一个框架,该框架包装内部图像以使用AspectFill去除空白,然后将其与AbsoluteLayout的边界一起放置,并将其保存在类“模板”。如果您对该主题感兴趣,这是xaml代码:

  <ContentView.Content>
        <AbsoluteLayout>
            <Frame AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.1,-1,-1" HeightRequest="300" WidthRequest="300" BackgroundColor="BlueViolet" Padding="0">
                <Image Source="ftoast.jpg" Aspect="AspectFill" />
            </Frame>
            <Image Source="temp1.png" AbsoluteLayout.LayoutFlags="PositionProportional" AbsoluteLayout.LayoutBounds="0.5,0.5,-1,-1"/>
        </AbsoluteLayout>
  </ContentView.Content>
© www.soinside.com 2019 - 2024. All rights reserved.