Firemonkey - 如何将Tlistitemimage放入圆圈中

时间:2015-02-05 08:54:50

标签: image listview bitmap geometry firemonkey

我有一个列表视图,其中包含每个项目中的图像和数据。我想要我的图像(这是一个TlistitemImage,如下所示。

image

我可以使用Tcircle并使用mycircle.fill.bitmap.bitmap轻松完成此操作,例如下面的代码 lcircle.fill.Bitmap.Bitmap.LoadFromFile(TPath.GetDocumentsPath + PathDelim +'test.png'); 但是我根本无法为每个列表项创建一个圆圈: - (

我的另一个选择是使用Tlistitemimage - 代码如下:

  LImage := TListItemImage.Create(mylistviewitem);
       LImage.Name := 'image';
       LImage.Align := TListItemAlign.Leading; // En Sað
       LImage.VertAlign := TListItemAlign.center; // Orta
       LImage.PlaceOffset.Y := 0;
       LImage.PlaceOffset.X := 0;
       Limage.width := 80;
       LImage.Height := 80;

       LImage.OwnsBitmap := True;
       LImage.Bitmap := TBitmap.Create(0,0);

Limage.Bitmap.LoadFromFile(TPath.GetDocumentsPath + PathDelim +'test.png');

现在我的想法是创建Tcircle并使圆的父级成为TListItemImage。不幸的是,这不起作用: - (

我也尝试过使用样式书,创建一个名为listitemimagestyle的新样式,并在该样式中创建一个tcircle,但也没有做任何事情。

有人可以帮助我吗?

谢谢 - 是的,我是一个noobie所以很好

2 个答案:

答案 0 :(得分:2)

使用TBitmap.CreateFromBitmapAndMask以使用掩码创建位图。面具将是一个黑色和白色的图像,包含你的圆圈。

答案 1 :(得分:0)

尝试在隐藏的tabitem上创建圆圈,并将图像放在此圆圈上。 之后从文件加载图像并将屏幕截图分配给listitem位图

Item.Bitmap.Assign(Circle1.MakeScreenshot);

fmx表格

    object Circle1: TCircle
        Align = Right
        Fill.Color = claSteelblue
        Margins.Left = 10.000000000000000000
        Margins.Top = 10.000000000000000000
        Margins.Right = 10.000000000000000000
        Margins.Bottom = 10.000000000000000000
        Position.X = 154.000000000000000000
        Position.Y = 10.000000000000000000
        Size.Width = 65.000000000000000000
        Size.Height = 65.000000000000000000
        Size.PlatformDefault = False
        Stroke.Kind = None
        object Image1: TImage
          MultiResBitmap.Height = 36
          MultiResBitmap.Width = 36
          MultiResBitmap.LoadSize = 2
          Align = Client
          Size.Width = 65.000000000000000000
          Size.Height = 65.000000000000000000
          Size.PlatformDefault = False
          WrapMode = Center
        end
   end