作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Xamarin.Android 制作自定义 View ,我想在 Canvas 上绘制一个圆然后在其上绘制一个位图。圆正在正确绘制,但位图不是位图对应一个png图片资源。这是我的 OnDraw
protected async override void OnDraw(Canvas canvas)
{
base.OnDraw(canvas);
Paint buttonBackgroundPaint = new Paint(PaintFlags.AntiAlias);
Color? c = null;
bool colorOk = Resources.TryGetColor(_backgroundColor, out c);
buttonBackgroundPaint.Color = (Color)(colorOk ? c : _context?.Resources.GetColor(AndroidRes.Resource.Color.Black));
canvas.DrawCircle(Width / 2, Height / 2, _radius, buttonBackgroundPaint);
Paint bitmapPaint = new Paint(PaintFlags.AntiAlias);
Bitmap bitmapContent = await BitmapFactory.DecodeResourceAsync(_context?.Resources, _drawableContent);
canvas.DrawBitmap(bitmapContent, 0, 0, bitmapPaint);
}
编辑:Resources.TryGetColor 是我创建的扩展方法。
最佳答案
我注意到旋转屏幕时会显示部分位图。问题出在位图边界上,所以我按如下方式解决了它:
protected async override void OnDraw(Canvas canvas)
{
base.OnDraw(canvas);
Paint buttonBackgroundPaint = new Paint(PaintFlags.AntiAlias);
Color? c = null;
bool colorOk = Resources.TryGetColor(_backgroundColor, out c);
buttonBackgroundPaint.Color = (Color)(colorOk ? c : _context?.Resources.GetColor(AndroidRes.Resource.Color.Black));
canvas.DrawCircle(Width / 2, Height / 2, _radius, buttonBackgroundPaint);
Drawable dr = _context.Resources.GetDrawable(Resource.Drawable.image);
dr.SetBounds(0, 0, right, bottom); // appropiate values for my case
dr.Draw(canvas);
}
关于c# - 画图 : Canvas is not drawing bitmap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32799426/
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 3 年前。 Improv
我需要在DOS下通过Assembly(intel)+C(c99)绘制QRCode。但看来我的内存太少了。我尝试将图像存储为位数组: image db 11111110b, ... 但无论如何我没有结果
我正在使用 Xamarin.Android 制作自定义 View ,我想在 Canvas 上绘制一个圆然后在其上绘制一个位图。圆正在正确绘制,但位图不是位图对应一个png图片资源。这是我的 OnDra
我正在通过编写游戏来学习 Android,但遇到了图形 API 方面的问题。 我想将图像绘制成路径的形状,然后在路径上添加边框。我能够使用 Path 剪辑图像,但找不到在其上添加边框的方法。我认为这很
我是一名优秀的程序员,十分优秀!