我正在尝试在Android中使用位图,但不幸的是我遇到了一些问题。
我创建了一个使用Paint事件绘制的TBitmap内部自定义的TComponent:
TMyThumbnail = class( TControl )
private
FBitmap: TBitmap;
protected
procedure Paint; override;
public
constructor Create( AOwner: TComponent ); override;
destructor Destroy; override;
end;
constructor TMyThumbnail.Create( AOwner: TComponent );
begin
inherited;
FBitmap := TBitmap.Create;
end;
destructor TMyThumbnail.Destroy;
begin
FBitmap.Free;
inherited;
end;
procedure TMyThumbnail.Paint;
begin
Canvas.BeginScene;
try
// * On Resume App the FBitmap is not Empty!
if ( not FBitmap.IsEmpty ) then
// ** So FBitmap is not empty and Width/Height are correct but is drawn as empty or nothing happens !
Canvas.DrawBitmap ( FBitmap, TRectF.( 0, 0, FBitmap.Width, FBitmap.Height ), ClientRect, 1 );
finally
Canvas.EndScene;
end;
end;
分配或加载位图时,一切都正常进行,组件正确绘制位图。
问题发生在我从应用程序中出来并打电话或打开另一个应用程序/意图到我的外部应用程序时。
在应用程序中返回位图不为空并且具有正确的大小,只有未通过调用绘制:
Canvas.DrawBitmap (FBitmap, BitmapRect, ClientRect, 1 );
有什么建议吗? 感谢。