我有一个列表视图,其中包含每个项目中的图像和数据。我想要我的图像(这是一个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,但也没有做任何事情。
有人可以帮助我吗?
谢谢 - 是的,我是一个noobie所以很好
答案 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