【问题标题】:Draw Text in ImageView it does not work? Delphi XE8 Android在 ImageView 中绘制文本不起作用?德尔福 XE8 安卓
【发布时间】:2015-07-28 03:11:52
【问题描述】:

在 ImageView 中绘制文本不起作用? Delphi XE8 Android

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 上运行。

【问题讨论】:

    标签: android delphi delphi-xe7 delphi-xe8


    【解决方案1】:

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

    ImageViewer1.Bitmap := TBitmap.Create(Trunc(ImageViewer1.Width), Trunc(ImageViewer1.Height));
    

    您可能已经在代码的其他地方(在您的 Button Click 事件之前)创建了这个 ImageViewer.bitmap,但是您的问题和代码含糊不清地知道这一点。如果是这样,问题将需要更多信息。

    即代码是:

    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-15
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 2012-01-03
      相关资源
      最近更新 更多