Fra*_*nkK 5 c# android xamarin.android xamarin
我正在尝试在 Android 手机屏幕上绘制图表。我已经在 Windows 窗体应用程序中创建了所需的类,以使测试变得更容易、更快。我的应用程序使用 System.Drawing 类
当我尝试在 xamarin android 项目中应用我的代码时,System.Drawing 类显然不包含“Graphics”、“Font”、“Pen”和“Brushes”类。System.Drawing.Graphics 类记录在 xamarin android api 中,但我无法让它工作。
我是否必须导入不同的类才能使用这些类,或者我是否必须更改我编写的代码?
我的图表类(仅绘制x轴和y轴+数字):Graph Class
//author Frank Keuning
using Android.Content;
using Android.Graphics.Drawables;
using Android.Graphics.Drawables.Shapes;
using Android.Views;
using System.Drawing;
namespace App2
{
public class Graph
{
Graphics g;
int height;
int width;
int step;
int x;
int y;
Point yNumPoint;
Point xNumPoint;
Font font = new Font("Verdana", 7.5f);
Pen pen = Pens.Black;
public Graph(Graphics gph, int hght, int wdth, int stp, int xStart, int yStart)
{
g = gph;
height = hght;
width = wdth;
step = stp;
x = xStart;
y = yStart;
}
public void draw(Graphics g)
{
g.DrawLine(pen, x, y, x, height);
g.DrawLine(pen, x, height, width, height);
drawNumbers(g);
}
void drawNumbers(Graphics g)
{
yNumPoint = new Point(0, height - y);
xNumPoint = new Point(x, height + y);
int yNumValue = 0;
int xNumValue = 0;
while (yNumValue <= height)
{
g.DrawString(yNumValue.ToString(), font, Brushes.Black, yNumPoint);
yNumValue += step;
yNumPoint.Y -= step;
}
while (xNumValue <= width)
{
g.DrawString(xNumValue.ToString(), font, Brushes.Black, xNumPoint);
xNumValue += step;
xNumPoint.X += step;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 1
对于我的项目,我有相同的要求:在 Android 中使用本机图形。
我想出了一个移植层。它运行速度相对较快,但有些功能可能尚未实现:
https://github.com/cail/AndroidDrawing
| 归档时间: |
|
| 查看次数: |
3468 次 |
| 最近记录: |