【问题标题】:Firemonkey - how to place an Tlistitemimage in a circleFiremonkey - 如何将 Tlistitemimage 放在一个圆圈中
【发布时间】:2015-02-05 08:54:50
【问题描述】:

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

我可以通过使用 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,但这也无济于事。

有人可以帮助我吗?

谢谢 - 是的,我是个菜鸟,所以要友善

【问题讨论】:

  • 已注意到,已修复,知道我该怎么做吗?

标签: image listview bitmap geometry firemonkey


【解决方案1】:

我会使用TBitmap.CreateFromBitmapAndMask 来使用蒙版创建您的位图。蒙版将是包含您的圆圈的黑白图像。

【讨论】:

    【解决方案2】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 1970-01-01
      • 2020-03-02
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 2018-12-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多