Android以编程方式绘制ImageView

本文关键字:绘制 ImageView 方式 编程 Android | 更新日期: 2023-09-27 17:57:44

我正试图在画布中绘制一个图像。在构造函数中:

this.Icon = new ImageView(context);
this.Icon.SetImageResource(Resource.Drawable.icon);
this.Icon.LayoutParameters = new ViewGroup.LayoutParams(width, height);

并且在OnDraw:中

protected override void OnDraw(Canvas canvas)
{
    this.Icon.SetX(x);
    this.Icon.SetY(y);
    this.Icon.RequestLayout();
    this.Icon.Draw(canvas);
}

它没有出现。我是不是错过了什么?

我的类扩展了View

Android以编程方式绘制ImageView

我找到了一种在视图中绘制图像的方法:

Bitmap bitmap = BitmapFactory.DecodeResource(Resources, Resource.Drawable.icon);
var scaledBitmap = Bitmap.CreateScaledBitmap(bitmap, w, h, false);
canvas.DrawBitmap(scaledBitmap, x, y, paint);

但这种做法好吗?以这种方式绘制它在资源上更贵吗?