本文来自:http://blog.youkuaiyun.com/hellogv/ ,转载必须注明出处!


以上第一幅图是窗体切换特效之一;第二幅图是控件切换特效之一
以下给出设置特效的代码,这些代码同样来自Sample例子中:


以上第一幅图是窗体切换特效之一;第二幅图是控件切换特效之一
以下给出设置特效的代码,这些代码同样来自Sample例子中:
- /*
- *Copyright?2008SunMicrosystems,Inc.Allrightsreserved.
- *Useissubjecttolicenseterms.
- *
- */
- packagecom.sun.lwuit.uidemo;
- importcom.sun.lwuit.Button;
- importcom.sun.lwuit.ButtonGroup;
- importcom.sun.lwuit.CheckBox;
- importcom.sun.lwuit.Command;
- importcom.sun.lwuit.Component;
- importcom.sun.lwuit.Container;
- importcom.sun.lwuit.Dialog;
- importcom.sun.lwuit.Display;
- importcom.sun.lwuit.Form;
- importcom.sun.lwuit.Label;
- importcom.sun.lwuit.M3G;
- importcom.sun.lwuit.RadioButton;
- importcom.sun.lwuit.TextArea;
- importcom.sun.lwuit.TextField;
- importcom.sun.lwuit.animations.CommonTransitions;
- importcom.sun.lwuit.animations.Transition;
- importcom.sun.lwuit.animations.Transition3D;
- importcom.sun.lwuit.events.ActionEvent;
- importcom.sun.lwuit.events.ActionListener;
- importcom.sun.lwuit.layouts.BoxLayout;
- importcom.sun.lwuit.layouts.FlowLayout;
- importcom.sun.lwuit.plaf.Style;
- /**
- *Transitonsbetweenscreens
- *
- *@authorShaiAlmog
- */
- publicclassTransitionDemoextendsDemo{
- /**
- *Theselectedradiobuttonindex
- */
- privatestaticintselectedIndex=0;
- publicStringgetName(){
- return"Transitions";
- }
- protectedStringgetHelp(){
- return"Transitionsappearwhenswitchingfromoneformtothenext,atransitioncanbebound"+
- "totheoperationofexitingorenteringthescreen.Therearedefaulttransitionsinthetoolkit"+
- "andcustomtransitionsareeasytowrite.";
- }
- privateRadioButtoncreateRB(Stringlabel,ButtonGroupg,Formf){
- RadioButtonb=newRadioButton(label);
- Styles=b.getStyle();
- s.setMargin(0,0,0,0);
- s.setBgTransparency(70);
- g.add(b);
- f.addComponent(b);
- returnb;
- }
- protectedvoidexecute(finalFormf){
- f.setLayout(newBoxLayout(BoxLayout.Y_AXIS));
- Labeltitle=newLabel("Pleaseselectatransitiontype:");
- title.getStyle().setMargin(0,0,0,0);
- title.getStyle().setBgTransparency(70);
- f.addComponent(title);
- finalButtonGroupradioButtonGroup=newButtonGroup();
- createRB("SlideHorizontal",radioButtonGroup,f);
- createRB("SlideVertical",radioButtonGroup,f);
- createRB("Fade",radioButtonGroup,f);
- if(M3G.isM3GSupported()){
- createRB("Rotate",radioButtonGroup,f);
- createRB("FlyIn",radioButtonGroup,f);
- createRB("Cube",radioButtonGroup,f);
- createRB("StaticRotation",radioButtonGroup,f);
- createRB("SwingTop",radioButtonGroup,f);
- createRB("SwingBottom",radioButtonGroup,f);
- }
- radioButtonGroup.setSelected(selectedIndex);
- finalTextFieldspeed=newTextField("500");
- speed.setConstraint(TextArea.NUMERIC);
- speed.setInputModeOrder(newString[]{"123"});
- f.addComponent(createPair("Speed",speed));
- finalFormdestination=newForm("Destination");
- destination.addComponent(newLabel("Thisisthetransitiondestination..."));
- destination.addCommand(newCommand("Back"){
- publicvoidactionPerformed(ActionEventevt){
- f.show();
- }
- });
- finalCheckBoxhighQuality=newCheckBox("HighQuality");
- highQuality.setSelected(!Display.getInstance().isLightMode());
- highQuality.getStyle().setBgTransparency(0);
- f.addComponent(highQuality);
- highQuality.addActionListener(newActionListener(){
- publicvoidactionPerformed(ActionEventevt){
- if(Display.getInstance().isLightMode()){
- Dialog.show("Warning","Thedeviceseemsabitweakforhighqualityrendering,"+
- "usingthismodemightcrashyourdevice.","OK",null);
- }
- }
- });
- finalButtonupdateButton=newButton("PreviewTransition");
- finalButtonapplyButton=newButton("ApplyTransition");
- finalButtonapplyMenu=newButton("ApplyToMenu");
- finalButtonapplyComponents=newButton("ApplyToComponents");
- updateButton.setAlignment(Button.CENTER);
- updateButton.getStyle().setPadding(5,5,7,7);
- applyButton.setAlignment(Button.CENTER);
- applyButton.getStyle().setPadding(5,5,7,7);
- ActionListenerlistener=newActionListener(){
- publicvoidactionPerformed(ActionEventev){
- intrunSpeed=Integer.parseInt(speed.getText());
- Transitionin,out;//in表示窗体切入时使用的特效,out表示窗体切出时使用的特性
- switch(radioButtonGroup.getSelectedIndex()){
- case0:{
- out=CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,false,runSpeed);
- in=CommonTransitions.createSlide(CommonTransitions.SLIDE_HORIZONTAL,true,runSpeed);
- break;
- }
- case1:{
- out=CommonTransitions.createSlide(CommonTransitions.SLIDE_VERTICAL,false,runSpeed);
- in=CommonTransitions.createSlide(CommonTransitions.SLIDE_VERTICAL,true,runSpeed);
- break;
- }
- case2:{
- out=CommonTransitions.createFade(runSpeed);
- in=CommonTransitions.createFade(runSpeed);
- break;
- }
- case3:{
- out=Transition3D.createRotation(runSpeed,true);
- in=Transition3D.createRotation(runSpeed,false);
- break;
- }
- case4:{
- out=Transition3D.createFlyIn(runSpeed);
- in=Transition3D.createFlyIn(runSpeed);
- break;
- }
- case5:{
- out=Transition3D.createCube(runSpeed,true);
- in=Transition3D.createCube(runSpeed,false);
- break;
- }
- case6:{
- out=Transition3D.createStaticRotation(runSpeed,true);
- in=Transition3D.createStaticRotation(runSpeed,false);
- break;
- }
- case7:{
- out=Transition3D.createSwingIn(runSpeed);
- in=out;
- break;
- }
- default:{
- out=Transition3D.createSwingIn(runSpeed,false);
- in=out;
- break;
- }
- }
- selectedIndex=radioButtonGroup.getSelectedIndex();
- if(outinstanceofTransition3D){//这里需要设置特效效果,仅对部分特效有效
- ((Transition3D)out).setHighQualityMode(highQuality.isSelected());
- ((Transition3D)in).setHighQualityMode(highQuality.isSelected());
- }
- if(updateButton==ev.getSource()){
- //演示窗体切换特效
- f.setTransitionOutAnimator(out);
- f.setTransitionInAnimator(in);
- destination.show();
- }
- elseif(applyButton==ev.getSource()){
- //设置全部窗体在切换时都是同一个特效,注意是“窗体切换时”
- f.setTransitionOutAnimator(null);
- f.setTransitionInAnimator(null);
- UIDemoMIDlet.setTransition(in,out);
- }
- /*这个函数是UIDemoMIDlet的成员函数
- *publicstaticvoidsetTransition(Transitionin,Transitionout){
- form.setTransitionInAnimator(in);
- form.setTransitionOutAnimator(out);
- }
- */
- elseif(applyMenu==ev.getSource()){
- //设置全部菜单都是同一个特效,菜单Menu就是一般在右下角弹出的
- UIDemoMIDlet.setMenuTransition(in,out);
- }
- /*这个函数是UIDemoMIDlet的成员函数
- *publicstaticvoidsetMenuTransition(Transitionin,Transitionout){
- form.setMenuTransitions(in,out);
- UIManager.getInstance().getLookAndFeel().setDefaultMenuTransitionIn(in);
- UIManager.getInstance().getLookAndFeel().setDefaultMenuTransitionOut(out);
- }
- */
- elseif(applyComponents==ev.getSource()){
- //设置控件都是同一个特效,这里的控件可以是Button
- //当Button被选中时就会显示特效
- UIDemoMIDlet.setComponentTransition(in);
- }
- /*这个函数是UIDemoMIDlet的成员函数
- *publicstaticvoidsetComponentTransition(Transitiont){
- componentTransitions=t;
- form.setSmoothScrolling(false);
- }
- */
- }
- };
- updateButton.addActionListener(listener);
- applyButton.addActionListener(listener);
- applyMenu.addActionListener(listener);
- applyComponents.addActionListener(listener);
- ContainerbuttonPanel=newContainer(newFlowLayout(Component.CENTER));
- buttonPanel.addComponent(updateButton);
- f.addComponent(buttonPanel);
- buttonPanel=newContainer(newFlowLayout(Component.CENTER));
- buttonPanel.addComponent(applyButton);
- f.addComponent(buttonPanel);
- buttonPanel=newContainer(newFlowLayout(Component.CENTER));
- buttonPanel.addComponent(applyMenu);
- f.addComponent(buttonPanel);
- buttonPanel=newContainer(newFlowLayout(Component.CENTER));
- buttonPanel.addComponent(applyComponents);
- f.addComponent(buttonPanel);
- }
- }