⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fimage.java

📁 一个简单的手机开发应用程序。 思想是从xml文件读入设置
💻 JAVA
字号:
package core.ui.control;

import com.lang.FError;
import com.lang.RClass;
import com.xml.FXmlNode;
import core.ui.IItem;
import java.io.IOException;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;

public class FImage implements
      IItem{

   private Image _image;

   public FImage(){
   }

   public FImage(Class clazz,
                 String name){
      loadResource('/' + RClass.path(clazz).replace('.', '/') + '/' + name);
   }

   public FImage(Image image){
      _image = image;
   }

   public FImage(String name){
      loadResource(name);
   }

   public Image image(){
      return _image;
   }

   public void loadConfig(FXmlNode config){
      loadResource(config.get("src"));
   }

   public void loadResource(String name){
      try{
         _image = Image.createImage(name);
      }catch(IOException e){
         throw new FError(e, "Load resource " + name);
      }
   }

   public Object nativeItem(){
      return _image;
   }

   public FImage scale(int scales1,
                       int scales2){
      return transform(_image.getWidth() * scales1 / scales2, _image.getHeight() * scales1 / scales2);
   }

   public FImage transform(int w,
                           int h){
      int srcW = _image.getWidth();
      int srcH = _image.getHeight();
      int dstW = w, dstH = h;
      Image tmp = Image.createImage(dstW, srcH);
      Graphics g = tmp.getGraphics();
      int scale = 16;
      int delta = (srcW << scale) / dstW;
      int pos = delta / 2;
      for(int x = 0; x < dstW; x++){
         g.setClip(x, 0, 1, srcH);
         g.drawImage(_image, x - (pos >> scale), 0, Graphics.LEFT | Graphics.TOP);
         pos += delta;
      }
      Image newImage = Image.createImage(dstW, dstH);
      g = newImage.getGraphics();
      delta = (srcH << scale) / dstH;
      pos = delta / 2;
      for(int y = 0; y < dstH; y++){
         g.setClip(0, y, dstW, 1);
         g.drawImage(tmp, 0, y - (pos >> scale), Graphics.LEFT | Graphics.TOP);
         pos += delta;
      }
      return new FImage(newImage);
   }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -