I am trying to convert a C# game to Android and need some help withe
the graphics stuff.

Can anyone show me how to convert this to Java?

using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using System.Drawing.Drawing2D;

namespace MyGame
{
  public partial class MyButton : Button
  {
    GraphicsPath path;
    GraphicsPath innerPath;

    private bool _clicked = false;
    public bool Clicked
    {
      get { return _clicked; }
      set
      {
        _clicked = value;
        Invalidate();
      }
    }

    public MyButton()
    {
      InitializeComponent();
    }

    protected override void OnPaint(PaintEventArgs pevent)
    {
      Graphics g = pevent.Graphics;
      g.SmoothingMode = SmoothingMode.AntiAlias;

      // Create painting objects
      Brush b = new SolidBrush(this.ForeColor);

      // Create Rectangle To Limit brush area.
      Rectangle rect = new Rectangle(0, 0, 150, 150);

      LinearGradientBrush linearBrush =
        new LinearGradientBrush(rect,
        Color.FromArgb(20,20,20),
        this.ForeColor,
        225);

      path = new GraphicsPath();
      innerPath = new GraphicsPath();

      path.AddArc(0, 0, 270, 270, 180, 90);
      path.AddArc(120, 0, 30, 30, 270, 90);
      path.AddLine(150, 0, 150, 85);
      path.AddArc(100, 100, 100, 100, -90, -90);
      path.AddLine(100, 150, 0, 150);
      path.AddArc(0, 120, 30, 30, 90, 90);

      innerPath.AddArc(10, 10, 250, 250, 180, 90);
      innerPath.AddArc(130, 10, 10, 10, 270, 90);
      innerPath.AddLine(140, 0, 140, 90);
      innerPath.AddArc(90, 90, 100, 100, -90, -90);
      innerPath.AddLine(90, 140, 10, 140);
      innerPath.AddArc(10, 130, 10, 10, 90, 90);

      this.Region = new Region(path);

      PathGradientBrush pgbrush = new PathGradientBrush(innerPath);
      pgbrush.CenterPoint = new Point(75, 75);
      pgbrush.CenterColor = Color.White;
      pgbrush.SurroundColors = new Color[] {
Color.FromArgb(250,this.ForeColor) };

      if (_clicked == false)
      {
        g.FillPath(linearBrush, path);
        g.FillPath(b, innerPath);
      }
      else
      {
        g.FillPath(linearBrush, path);
        g.FillPath(pgbrush, innerPath);
      }

      // Dispose of painting objects
      b.Dispose();
      pgbrush.Dispose();
      linearBrush.Dispose();
    }

    protected override void OnMouseEnter(EventArgs e)
    {
      this.Cursor = Cursors.Hand;
      base.OnMouseEnter(e);
    }

    protected override void OnMouseLeave(EventArgs e)
    {
      this.Cursor = Cursors.Arrow;
      base.OnMouseLeave(e);
    }

    protected override void OnMouseDown(MouseEventArgs mevent)
    {
      _clicked = true;
      base.OnMouseDown(mevent);
    }

    protected override void OnMouseUp(MouseEventArgs mevent)
    {
      _clicked = false;
      base.OnMouseUp(mevent);
    }
  }
}

-- 
You received this message because you are subscribed to the Google
Groups "Android Beginners" group.

NEW! Try asking and tagging your question on Stack Overflow at
http://stackoverflow.com/questions/tagged/android

To unsubscribe from this group, send email to
android-beginners+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-beginners?hl=en

Reply via email to