关闭

连续帧图片显示动画(Java)

标签: java图片动画
2031人阅读 评论(0) 收藏 举报
分类:

原理很简单,用Gif图片的连续几帧图片,在JPanel中画出来,显示出动态图效果


package multi_media;

import java.awt.Graphics;
import java.awt.Image;
import java.io.File;
import java.net.URI;
import java.util.ArrayList;
import java.util.List;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MyDraw extends JPanel{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	private int curPic;
	private int allPic;
	private int picHeight;
	private int picWidth;
	private List<Image> images;
	
	public MyDraw() {
		try{
			final URI dir = getClass().getResource(".").toURI();
			String [] files = new File(dir).list();
			images = new ArrayList<Image>();
			for(String file : files) {
				if(file.toLowerCase().endsWith(".gif")) {
					Image i = ImageIO.read(new File(new File(dir), file));
					images.add(i);
					
					if(picHeight == 0 || picWidth == 0) {
						picHeight = i.getHeight(this);
						picWidth = i.getWidth(this);
					}
				}
			}
			
			allPic = images.size();
			
		}catch(Exception e) {
			e.printStackTrace();
		}
	}
	
	

	@Override
	protected void paintComponent(Graphics g) {
		// TODO Auto-generated method stub
		super.paintComponent(g);
		if(images == null || images.size() == 0) {
			return ;
		}
		
		//System.out.println(allPic);
		
		g.drawImage(images.get(curPic), 0, 0, this);
		
		curPic++;
		if(curPic == allPic)
			curPic = 0;
	}

	public static void main(String[] args) {
		
		JFrame f = new JFrame();
		MyDraw d = new MyDraw();
		f.add(d);
		
		f.setSize(d.picWidth, d.picHeight);
		f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		f.setVisible(true);
		
		while(true) {
			try {
				Thread.sleep(100);
			} catch (InterruptedException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			d.repaint();
		}
		
	}
	
	
}


0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

IOS 连续图片组成的动画

UIImage *image1 = [UIImage imageNamed:@"image1"];     UIImage *image2 = [UIImage imageNamed:@"i...
  • u012143568
  • u012143568
  • 2014-08-22 20:06
  • 633

java Thread 图片循环切换

import java.awt.Image;import java.text.ParseException;import java.text.SimpleDateFormat;import java....
  • xiechunmei13
  • xiechunmei13
  • 2011-03-01 16:41
  • 4967

Java循环播放图片问题

昨日在论坛中看到一贴,用Java实现循环播放截图,遇到问题颇多,下面是他的描述:    “播放连续截图的时候都是卡的我眼泪直流,而且JFrame窗体老变白,我在画图片之前又将背景绘制成全黑,还是一样,...
  • monitor1394
  • monitor1394
  • 2010-12-23 11:59
  • 6191

Android 用Animation-list实现逐帧动画详细步骤

1.在res\drawable目录下创建两个文件,分别为animation1.xml及animation2.xml分别用于顺序和倒序显示动画文件,具体创建步骤: (1) (2) ...
  • LLXLQY
  • LLXLQY
  • 2016-08-22 15:15
  • 2861

java 怎样做出完美动画,(包括透明效果)

有一张 gif  我处理了一下,拿到 java 上,直接 g.draw 是这个效果:   这已经是处理的极限,因为这张图做出来是为白底背景而作,而我的背景是黑底。 但,最终我做出来是这个效果...
  • cnmm22
  • cnmm22
  • 2015-04-03 14:01
  • 3045

Java之简单的图片动态显示(实现类似GIF动画结果)

就是每隔必然的时候显示一张图片,全部图片文件位于:“工作空间\项目名称\bin\动态图\花好月圆\”文件夹下。文件名类似:1001.jpg,1002.jpg,一向到1016.jpg: * * Do...
  • ycb1689
  • ycb1689
  • 2012-10-14 23:09
  • 2325

【java】java显示会动的图片(类似于动画)

如图,实现图片的移动,时间间隔根据自己的爱好设定(我的是500ms),类似于动画。如果有一组比较连贯的图片效果就更好。 代码如下: import java.awt.*; import ja...
  • qq_32353771
  • qq_32353771
  • 2016-06-22 08:50
  • 1815

一个Java Applet的动态显示图片的小程序

  • 2010-06-29 10:04
  • 183KB
  • 下载

java实现gif动画效果(java显示动态图片)

java实现gif动画效果(java显示动态图片)
  • u012726702
  • u012726702
  • 2016-06-23 00:25
  • 2303

史上最扯Java图形绘制(J2SE)之一JAVA动画效果

很多主一听说Java界面,一水的头大外带血压高,兄弟我倒觉得没什么必要。         其实Java这东西吧,就简便性和其初衷而言,真他妈就在GUI 这地界是有优势的,单就其2D界面开发的易用性来...
  • cping1982
  • cping1982
  • 2007-09-14 22:08
  • 16728