• 大小: 11.36MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-28
  • 语言: 其他
  • 标签: xamarin  

资源简介

xamarin.forms, xamarin.forms,xamarin.forms,xamarin.forms,xamarin.forms,xamarin.formsxamarin.forms, xamarin.forms, xamarin.forms,xamarin.forms,xamarin.forms,xamarin.forms,xamarin.formsxamarin.forms

资源截图

代码片段和文件信息

using Android.Views;
using Android.Graphics;
using Android.Content;
using System;

namespace Signature.Droid
{
public class DrawView : View
{
public DrawView(Context context)
: base(context)
{
Start();
}

public Color CurrentLineColor { get; set; }
public String ImageFilePath { get; set; }

public float PenWidth { get; set; }

private Path DrawPath;
private Paint DrawPaint;
private Paint CanvasPaint;
private Canvas DrawCanvas;
private Bitmap CanvasBitmap;

private int w h;
private Bitmap _image = null;

private void Start()
{
CurrentLineColor = Color.Black;
PenWidth = 5.0f;

DrawPath = new Path();
DrawPaint = new Paint
{
Color = CurrentLineColor
AntiAlias = true
StrokeWidth = PenWidth
};

DrawPaint.Setstyle(Paint.style.Stroke);
DrawPaint.StrokeJoin = Paint.Join.Round;
DrawPaint.StrokeCap = Paint.Cap.Round;

CanvasPaint = new Paint
{
Dither = true
};
}

public void Clear()
{
try
{
DrawPath = new Path();
CanvasBitmap = Bitmap.CreateBitmap(w h Bitmap.Config.Argb8888);
DrawCanvas = new Canvas(CanvasBitmap);
}
catch (Exception e)
{

}

Invalidate();
}

protected override void OnSizeChanged(int w int h int oldw int oldh)
{
base.OnSizeChanged(w h oldw oldh);
if (w > 0 && h > 0)
{
try
{
CanvasBitmap = Bitmap.CreateBitmap(w h Bitmap.Config.Argb8888);
DrawCanvas = new Canvas(CanvasBitmap);
this.w = w;
this.h = h;
}
catch(Exception ex)
{

}
}
}

protected override void OnDraw(Canvas canvas)
{
base.OnDraw(canvas);

DrawPaint.Color = CurrentLineColor;
DrawPaint.StrokeWidth = PenWidth;
canvas.DrawBitmap(CanvasBitmap 0 0 CanvasPaint);
canvas.DrawPath(DrawPath DrawPaint);
}

public override bool OnTouchEvent(MotionEvent e)
{
var touchX = e.GetX();
var touchY = e.GetY();

switch (e.Action)
{
case MotionEventActions.Down:
DrawPath.MoveTo(touchX touchY);
break;
case MotionEventActions.Move:
DrawPath.LineTo(touchX touchY);
break;
case MotionEventActions.Up:
DrawCanvas.DrawPath(DrawPath DrawPaint);
DrawPath.Reset();
break;
default:
return false;
}

Invalidate();

return true;
}

public void LoadImageFromFile()
{
if (ImageFilePath != null && ImageFilePath != ““)
{
_image = BitmapFactory.DecodeFile(ImageFilePath);
}
}

public Bitmap GetImageFromView()
{
Bitmap tempBitmap = null;
try
{
tempBitmap = Bitmap.CreateBitmap(w h Bitmap.Config.Argb8888);
DrawCanvas = new Canvas(tempBitmap);

if (_image != null)
{
DrawPaint.Setstyle(Paint.style.Fill);
DrawPaint.Color = Color.White;
DrawCanvas.DrawRect(new Rect(0 0 w h) DrawPaint);

float scaleX = (float)_image.Width / w;
float scaleY = (float)_image.Height / h;
Rect outRect = new Rect();

int outWidth outHeight;
if (scaleX > scaleY

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2016-03-18 15:25  Signature\
     目录           0  2016-03-18 15:59  Signature\.git\
     文件         144  2016-03-18 12:52  Signature\.git\config
     文件          73  2016-03-18 12:52  Signature\.git\description
     文件          23  2016-03-18 12:52  Signature\.git\HEAD
     目录           0  2016-04-05 23:54  Signature\.git\hooks\
     文件         177  2016-03-18 12:52  Signature\.git\hooks\README.sample
     文件        3536  2016-03-18 15:59  Signature\.git\index
     目录           0  2016-04-05 23:54  Signature\.git\info\
     文件         113  2016-03-18 12:52  Signature\.git\info\exclude
     目录           0  2016-03-18 15:59  Signature\.git\objects\
     目录           0  2016-04-05 23:54  Signature\.git\objects\02\
     文件         149  2016-03-18 12:56  Signature\.git\objects\02\16ee96cdf816ff5bac9762b42ec0aba6cdc675
     目录           0  2016-04-05 23:54  Signature\.git\objects\0c\
     文件         119  2016-03-18 13:13  Signature\.git\objects\0c\52c383af63b19def11bfc20fd86a49fe7cadd4
     目录           0  2016-03-18 12:52  Signature\.git\objects\0d\
     文件        2010  2016-03-18 12:52  Signature\.git\objects\0d\8c1c57dc5ca6268f2d5edae12f41a1a1dc3435
     目录           0  2016-04-05 23:54  Signature\.git\objects\10\
     文件         766  2016-03-18 12:52  Signature\.git\objects\10\f52d46021dff0e36a01c8aff6a464670c3505d
     目录           0  2016-04-05 23:54  Signature\.git\objects\17\
     文件        1201  2016-03-18 12:52  Signature\.git\objects\17\d15588c745ad65886a63316bd22cdffae15590
     目录           0  2016-04-05 23:54  Signature\.git\objects\1c\
     文件         210  2016-03-18 12:52  Signature\.git\objects\1c\ddde0140581974fc6c3a37265a41c4e3858183
     目录           0  2016-04-05 23:54  Signature\.git\objects\21\
     文件         104  2016-03-18 13:16  Signature\.git\objects\21\00859fdb4798280d7a50c83c85dbde54dad424
     目录           0  2016-04-05 23:54  Signature\.git\objects\24\
     文件         251  2016-03-18 12:52  Signature\.git\objects\24\f99745850af9f1ad9963d6c6ed3c6268789683
     目录           0  2016-04-05 23:54  Signature\.git\objects\26\
     文件          97  2016-03-18 12:57  Signature\.git\objects\26\77c598f8e3507a7ba930028113ea290d0c06b0
     目录           0  2016-04-05 23:54  Signature\.git\objects\3c\
     文件        1385  2016-03-18 12:52  Signature\.git\objects\3c\01e60ced0cd4ca7d47f6d4061603c5d0a4af95
............此处省略279个文件信息

评论

共有 条评论