「java动态海报」java 海报
本篇文章给大家谈谈java动态海报,以及java 海报对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、在Java中动态二次元世界怎么制作
- 2、java中在窗体的创建一个面板中加入一个gif动态图
- 3、北大青鸟java培训:动态图形设计的制作方法?
- 4、java怎么在JFrame中显示动态图片?
- 5、java 怎么把gif图按比例缩放
- 6、java如何传输动态图片(GIF图片)?
在Java中动态二次元世界怎么制作
由于开发需要(为界面提供扩展外观),最近研究了一下从运行Jar中代码的实现。发现Java中的ClassLoader搭配上反射功能就能实现,基本思路如下:
编写一个接口,让编写的外部需要运行的类(要放到Jar中的)实现这个接口。
通过ClassLoader加载那个Jar文件,得到一个Class。然后newInstance()创建一个对象
然后按照接口中的方法去调用指定函数
代码例子:
制作一个Java的记事本程序(NotePad)
然后会从Style.jar中加载程序所需要的样式
其中Style.jar中有一个MyStyle的类实现了一个StyleInterface的接口
接口代码如下:
public interface StyleInterface {
public String getStyle();
}
MyStyle类的代码如下:
public class MyStyle implements StyleInterface{
@Override
public String getStyle() {
return "我是从MyStyle中得到的样式代码!";
}
}
然后,在记事本主程序程序中通过如下方式调用:
String class_path = "MyStyle";//Jar中的所需要加载的类的类名
String jar_path = ":\Style.jar";//jar所在的文件的URL
try {
ClassLoader cl = new URLClassLoader(new URL[]{new URL(jar_path)});//从Jar文件得到一个Class加载器
Class? c = cl.loadClass(class_path);//从加载器中加载Class
StyleInterface sif = (StyleInterface) c.newInstance();//从Class中实例出一个对象
System.out.println(sif.getStyle());//调用Jar中的类方法
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
注意:
class_path必须是完整类名(连同所在的包的路径),例如:在myjava.test下有一个类Test,则Test的完整类名是:myjava.test.Test.而如果是在"缺省包"下的类,就可以省略包的路径(本来就没有)。
jar_path不是Jar文件的路径,而是Jar文件的URL。
通常可以这样表示:"文件的绝对路径"
从Class中实例出对象时,一定要把Object强制转换成实现指定接口的类,就想例子中的StyleInterface
java中在窗体的创建一个面板中加入一个gif动态图
你是说 JPanel 吗?两种方法:
添加 JLabel,给 JLabel 添加 ImageIcon,然后放置 JLabel 到 JPanel 上就行了:
JPanel pnl = new JPanel();
......
JLabel lblImage = new JLabel(new ImageIcon("你的文件名")); //创建一个带图片的 JLabel
lblImage.setBounds(0, 0, pnl.getWidth(), pnl.getHeight()); //设置 图片的横坐标、纵坐标、宽、高
pnl.add(lblImage); //放置这个 JLabel 到你的 JPanel 上面
还有一种方法是重写 JPanel 的 paint() 方法:
class YourPanel extends JPanel {
private Image img = Toolkit.getDefaultToolkit().createImage("你的文件名"); //用 Toolkit 的 createImage 方法来创建一个 Image 对象
@Override public void paint (Graphics g) {
super.paint(g);
g.drawImage(img, 0, 0, getWidth(), getHeight()); //绘制图片,第一个参数是 Image 对象,第二个参数是 横坐标,第三个是 纵坐标,第四个是 宽,第五个是 高
}
}
以上你隐式重写也可以:
JPanel pnl = new JPanel() {
@Override public void paint (Graphics g) {
...... //但是要注意这样如果你把 Image 声明成了局部变量或者参数形式,你需要声明成 final
}
}
北大青鸟java培训:动态图形设计的制作方法?
对于大多数的用户来说,动态的内容展示要比单纯的平面图形的吸引力更强,传达的信息和内容也更多,下面我们就一起来了解一下,动态图形设计的制作方法。
一、动态图形设计的起源动态图形设计,英文MotionGraphicsDesign,简称MG。
是将原本静态的平面图像经过动态的设定,呈现出动感,赋予其生命力。
动态图形的应用十分广泛,从电影片头,电视包装、MV、广告,到APP、移动游戏、广告牌、场景布置等,几乎无处不在。
在20世纪50年代,JohnWhitney利用他的机械动画技术为电视节目和商业广告创造序列。
1952年,他导演了有关导弹项目的工程电影。
这一时期他著名的作品之一是与平面设计师SaulBass合作的AlfredHitchcock1958年的电影《Vertigo》的动画标题序列。
图形天然有着比文字、声音更高的传达效率,因为人类的大脑视觉信息处理相关脑区占统治地位,所以对于图形更敏感,印象更深刻。
而人对静止不动的事物,通常不会注意到,而这些事物一旦动起来,我们的注意力就会被吸引到动的事物上面。
所以动态图形比静态图形更有吸引力,能传达更深层次的信息,触发情绪。
在互联网蓬勃发展的时代,设计师们的技能也越来越全面,而我建议大家应该多掌握一门技能——动态图形设计。
在设计中利用动态图形设计来提高传达效率,调动用户情绪,在UI设计、运营设计、交互设计上都能广泛的应用。
在设计动态图形时,并非简单的让静态图形动起来就可以了,进行设计时有一个很重要的核心——故事,所有的图形的运动、衔接、消失都应该围绕着故事来进行,故事是动态图形设计的骨,运动形式是肉。
有骨有肉,才是一个完整的动态图形设计。
那么如何才能做出一个相对完整、有理据、有创意的动态图形设计,下面我想告诉大家我是怎么做的。
二、个人总结的动态图形设计方法5步法:确定主题→了解趋势→竞品分析→设计构思→执行落地确定主题:前期需要跟大家讨论/自己决策选择1~3个优信息点,动态图形设计围绕着1~3个优信息点进行。
了解趋势:收集和了解目前比较流行的动态图形设计是怎么样的,这样一方面能使你做出来的动态图形设计更符合大众审美,另一方面也确保能让自己学习到新的动态图形设计的叙事、衔接、运动形式。
电脑培训建议看看顶尖的动态图形设计工作室是如何做的。
像ManvsMachine、weareseventeen、Buck、Animade等等。
java怎么在JFrame中显示动态图片?
试了一下,从网上找了个GIF
可以用啊
--------------------------------------------------------------------------------------------
import java.awt.Graphics;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class ImageApp extends JFrame {
public ImageApp() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(400, 300);
setResizable(false);
getContentPane().setLayout(null);
JPanel panel = new ImagePanel();
panel.setBounds(0, 0, 400, 300);
getContentPane().add(panel);
setVisible(true);
}
public static void main(String[] args) {
new ImageApp();
}
class ImagePanel extends JPanel {
public void paint(Graphics g) {
super.paint(g);
// ImageIcon icon = new ImageIcon("D:\\1.jpg");
ImageIcon icon = new ImageIcon("D:\\14405937jqhjsppeninjf9.gif");
g.drawImage(icon.getImage(), 0, 0, 400, 300, this);
}
}
}
java 怎么把gif图按比例缩放
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.util.*;
final class cat extends JFrame {
final static private Dimension SIZE = new Dimension(800, 600);
public String getTitle() {return "cat";}
public Dimension getPreferredSize() {return SIZE;}
public Dimension getMinimumSize() {return SIZE;}
public Dimension getMaximumSize() {return SIZE;}
public Dimension getSize() {return SIZE;}
private Canvas canvas;
private Brush brush;
cat() throws HeadlessException {
init();
attachListeners();
doLay();
setVisible(true);
}
private void init() {
brush = new CatBrush();
canvas = new Canvas(brush);
}
private void attachListeners() {
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(1);
}
});
}
private void doLay() {
Container container = getContentPane();
container.add(canvas, BorderLayout.CENTER);
pack();
}
public static void main(String... args) {
System.setProperty("swing.defaultlaf", "com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
SwingUtilities.invokeLater(cat::new);
}
private interface Brush extends Observer {
/**
* do paint action
* @param g the graphics context in you application
*/
void paint(Graphics g);
/**
* The component that this brush hold
* @return component instance
*/
Component getOwner();
void setOwner(Component owner);
}
private static final class CatBrush implements Brush {
private Component owner;
private Image img;
private AffineTransform affineTransform = AffineTransform.getScaleInstance(.4d,.4d);
public CatBrush() {
img = Toolkit.getDefaultToolkit().getImage("G:\\cat.jpg");
}
public Component getOwner() {
return owner;
}
public void setOwner(Component owner) {
this.owner = owner;
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g.create();
g2.drawImage(img,affineTransform,getOwner());
g2.dispose();
}
public void update(Observable o, Object arg) {
if (owner != null) owner.repaint();
}
}
/**
* you canvas
*/
private class Canvas extends JComponent {
private Brush brush;
private Canvas(Brush brush) {
super();
this.brush = brush;
brush.setOwner(this);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if (brush == null) return;
brush.paint(g);
}
}
}
java如何传输动态图片(GIF图片)?
实现思路:无论是何种类型,都是转换为流的形式进行的文件传输和存储。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
OutputStreamWriter pw = null;//定义一个流
try {
String file = "D:/test/test.GIF";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
pw = new OutputStreamWriter(new FileOutputStream(“D:/New.GIF”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.GIF”实例
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
pw.write(str);//将要写入文件的内容,可以多次write
};
bre.close();
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
java动态海报的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java 海报、java动态海报的信息别忘了在本站进行查找喔。