Android 在ImageView中绘制文本是否无效?Delphi XE8安卓

Android 在ImageView中绘制文本是否无效?Delphi XE8安卓,android,delphi,delphi-xe7,delphi-xe8,Android,Delphi,Delphi Xe7,Delphi Xe8,在ImageView中绘制文本是否无效?Delphi XE8安卓 procedure TForm1.Button1Click(Sender: TObject); var Rect: TRectF; begin with ImageViewer1.Bitmap do begin SetSize(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height)); Clear(TAlphaC

在ImageView中绘制文本是否无效?Delphi XE8安卓

procedure TForm1.Button1Click(Sender: TObject);
  var
    Rect: TRectF;
  begin
    with ImageViewer1.Bitmap do
      begin
        SetSize(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
        Clear(TAlphaColors.White);
        Canvas.BeginScene();
        Canvas.Stroke.Kind := TBrushKind.Solid;
        Canvas.Fill.Color := TAlphaColors.Black;
        Canvas.Font.Size := 60;
        Rect.Create(0, 0, Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
        Canvas.FillText(Rect,
                        Edit1.Text,
                        False,
                        100,
                        [],
                        TTextAlign.Center,
                        TTextAlign.Center);
        Canvas.EndScene();
      end;
end;

生成的图像较小,不绘制所示的文本。但是,如果您绘制给定的文本,则会生成Windows图像。这是非常罕见的,因为在所有平台中都应该工作相同,但在本例中并非如此。TImage和TImageView经过测试,在Android上不起作用,它只在Windows下起作用。

这可能是因为需要创建分配给ImageView的位图,然后才能使用ImageViewer.bitmap.Canvas

ImageViewer1.Bitmap := TBitmap.Create(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
您可能已经在代码的其他地方创建了这个ImageViewer.bitmap(在您的按钮单击事件之前),但是您的问题和代码很模糊,无法知道这一点。如果是这样,这个问题将需要更多的信息

i、 e.守则将是:

procedure TForm1.Button1Click(Sender: TObject);
var Rect: TRectF;
begin
    ImageViewer1.Bitmap := TBitmap.Create(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
    with ImageViewer1.Bitmap do
    begin
      ....etc

这可能是因为在使用ImageViewer.bitmap.Canvas之前,需要创建分配给ImageView的位图

ImageViewer1.Bitmap := TBitmap.Create(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
您可能已经在代码的其他地方创建了这个ImageViewer.bitmap(在您的按钮单击事件之前),但是您的问题和代码很模糊,无法知道这一点。如果是这样,这个问题将需要更多的信息

i、 e.守则将是:

procedure TForm1.Button1Click(Sender: TObject);
var Rect: TRectF;
begin
    ImageViewer1.Bitmap := TBitmap.Create(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
    with ImageViewer1.Bitmap do
    begin
      ....etc