GIF image is not animated in Windows Mobile 6 professional Emulator
hi ,
I have written the following code for animating a GIF image using .Net Compact Frame Work in
C#. The GIF image would be animate . But here the GIF image is not animating here . Please tell
me where is the problem . I need the solution in emergency.
I use two class .
First Class
-----------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Reflection;
namespace MobileAnimation
{
public partial class AnimateCtl : System.Windows.Forms.Control
{
Graphics graphics;
Timer fTimer;
public AnimateCtl()
{
InitializeComponent();
graphics = this.CreateGraphics();
DrawCustomGui();
}
int frameCount = 30;
int frameWidth;
int loopCount;
int loopCounter;
int frameHeight;
int currentFrame = 0;
Image animatedImage = new Bitmap(Assembly.GetExecutingAssembly().GetManifestResourceStream(@"MobileAnimation.ani-loading.gif"));
public void StartAnimation(int DelayInterval, int LoopCount)
{
frameWidth = animatedImage.Width;
// frameWidth =5;
//How many times to loop
loopCount = LoopCount;
//Reset loop counter
loopCounter = 0;
//Calculate the frameCount
//frameCount = bitmap.Width / frameWidth;
frameHeight = animatedImage.Height;
//Resize the control
this.Size = new Size(frameWidth, frameHeight);
//Assign delay interval to the timer
fTimer.Interval = DelayInterval;
//Start the timer
fTimer.Enabled = true;
}
private void timer1_Tick(object sender, System.EventArgs e)
{
if (loopCount == -1) //loop continuously
{
this.DrawFrame();
}
else
{
if (loopCount == loopCounter) //stop the animation
fTimer.Enabled = false;
else
this.DrawFrame();
}
}
private void DrawFrame()
{
if (currentFrame < frameCount - 1)
{
//move to the next frame
currentFrame++;
}
else
{
//increment the loopCounter
loopCounter++;
currentFrame = 0;
}
Draw(currentFrame);
}
private void Draw(int iframe)
{
//Calculate the left location of the drawing frame
int XLocation = iframe * frameWidth;
Rectangle rect = new Rectangle(XLocation, 0, frameWidth, frameHeight);
//Draw image
graphics.DrawImage(animatedImage, 0, 0, rect, GraphicsUnit.Pixel);
}
private void DrawCustomGui()
{
SuspendLayout();
fTimer = new System.Windows.Forms.Timer();
StartAnimation(100, 3);
fTimer.Tick += new System.EventHandler(this.timer1_Tick);
PictureBox pictBox = new PictureBox();
//Image loadImage = new Bitmap(SDSL.MobileMap.WindowsMobile6.Control.Application.Program.appDir + "\\images\\ani-loading.gif");
pictBox.Image = animatedImage;
pictBox.Location = new Point(0, 0);
//pictBox.Size = new Size(220, 180);
pictBox.Size = new Size(138, 120);
Controls.Add(pictBox);
// Controls.Add(pictBox);
ResumeLayout();
}
}
}
Second Class
----------------
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace MobileAnimation
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AnimateCtl animateCtl = new AnimateCtl();
animateCtl.Location = new Point(50, 50);
this.Controls.Add(animateCtl);
}
}
}