Android以编程方式绘制ImageView

时间:2016-07-18 21:09:30

标签: c# android xamarin

我正在尝试将图像绘制到画布中。在构造函数中:

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

1 个答案:

答案 0 :(得分:0)

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

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

但这是好习惯吗?以这种方式绘制它的资源是否更加昂贵?