コンテンツにスキップ

RenderImage クラス

画像を自身の領域へFitに従って収めて描画する、子を持たないRenderObjectです。

名前空間: FloatSoda.RenderObjects.Painting
アセンブリ: FloatSoda.dll

public class RenderImage : RenderBox, IHitTestTarget

object ← RenderObject ← RenderBox ← RenderImage

IHitTestTarget

RenderBox.Size, RenderBox.GetMinIntrinsicWidth(double), RenderBox.GetMaxIntrinsicWidth(double), RenderBox.GetMinIntrinsicHeight(double), RenderBox.GetMaxIntrinsicHeight(double), RenderBox.ComputeMinIntrinsicWidth(double), RenderBox.ComputeMaxIntrinsicWidth(double), RenderBox.ComputeMinIntrinsicHeight(double), RenderBox.ComputeMaxIntrinsicHeight(double), RenderBox.HitTest(HitTestResult, Offset), RenderBox.HitTestChildren(HitTestResult, Offset), RenderBox.HitTestSelf(Offset), RenderBox.HandleEvent(PointerEvent, HitTestEntry), RenderObject.Constraints, RenderObject.ParentData, RenderObject.Parent, RenderObject.Owner, RenderObject.Layer, RenderObject.Size, RenderObject.NeedsPaint, RenderObject.NeedsLayout, RenderObject.Depth, RenderObject.IsRepaintBoundary, RenderObject.Attached, RenderObject.RelayoutBoundary, RenderObject.SizedByParent, RenderObject.PerformLayout(), RenderObject.Layout(BoxConstraints, bool), RenderObject.LayoutWithoutResize(), RenderObject.CleanChildRelayoutBoundary(), RenderObject.MarkNeedsLayout(), RenderObject.MarkParentNeedsLayout(), RenderObject.Attach(RenderPipeline?), RenderObject.AdoptChild(RenderObject), RenderObject.RedepthChild(RenderObject), RenderObject.RedepthChildren(), RenderObject.VisitChildren(Action<RenderObject>), RenderObject.SetupParentData(RenderObject), RenderObject.Paint(PaintingContext, Offset), RenderObject.MarkNeedsPaint(), RenderObject.Detach(), RenderObject.DropChild(RenderObject), RenderObject.HandleEvent(PointerEvent, HitTestEntry), object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.MemberwiseClone(), object.ReferenceEquals(object?, object?), object.ToString()

Coverのように画像の一部だけを使うFitでは、描画元の矩形を 切り取って描画します。どのFitでも描画先は自身の領域内に収まるため、 領域外へはみ出すことはありません。 FittedBoxがClipBehaviorを必要とするのは、 描画元を切り取れない子ウィジェットを拡大縮小するためで、この型では不要です。 制約が許す範囲で、画像の原寸を自身のサイズにします。

収めた画像を自身の領域内へ配置する位置を取得または設定します。

public Alignment Alignment { get; set; }

Alignment

レイアウト結果は変えません。変更すると再描画のみを要求します。

ArgumentOutOfRangeException

いずれかの成分が有限値ではありません。

画像を自身の領域へ収める方法を取得または設定します。

public BoxFit Fit { get; set; }

BoxFit

レイアウト結果は変えません。変更すると再描画のみを要求します。

ArgumentOutOfRangeException

定義されていない値です。

描画する画像を取得します。

public required SKImage Image { get; set; }

SKImage

派生型固有の最大intrinsic高さを計算します。

protected override double ComputeMaxIntrinsicHeight(double width)

width double

double

派生型固有の最大intrinsic幅を計算します。

protected override double ComputeMaxIntrinsicWidth(double height)

height double

double

派生型固有の最小intrinsic高さを計算します。

protected override double ComputeMinIntrinsicHeight(double width)

width double

double

派生型固有の最小intrinsic幅を計算します。

protected override double ComputeMinIntrinsicWidth(double height)

height double

double

指定したローカル座標で自身がヒットするかを判定します。

public override bool HitTestSelf(Offset position)

position Offset

このRenderBoxのローカル座標系における判定位置。

bool

自身がヒット対象の場合はtrue、それ以外の場合はfalseです。

自身の領域内なら常にヒットします。Flutter の RenderImage に合わせています。

指定した位置を原点として、このRenderObjectを描画コンテキストへ記録します。

public override void Paint(PaintingContext context, Offset offset)

context PaintingContext

描画命令と合成レイヤーを記録するコンテキスト。

offset Offset

親の座標系における描画原点。

現在のConstraintsに従って自身と必要な子をレイアウトします。

public override void PerformLayout()

派生型は処理の完了前にSizeを確定します。