backgroundimagecanvas.java.svn-base

来自「example2 众多JAVA实例源码...学习java基础的好帮手」· SVN-BASE 代码 · 共 88 行

SVN-BASE
88
字号
package opusmicro.demos.backgroundimage;

import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;

import javax.microedition.amms.GlobalManager;
import javax.microedition.amms.MediaProcessor;
import javax.microedition.amms.control.imageeffect.ImageTransformControl;
import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.media.Manager;
import javax.microedition.media.MediaException;

public class BackgroundImageCanvas extends Canvas{
	Image img;
	private int h;
	private int w;
	int tileX,tileY,tileW,tileH;
	public BackgroundImageCanvas() {
		setFullScreenMode(true);
		w = getWidth();
		h = getHeight();
		tileX = 10;tileY=10;tileW=w-20;tileH=h/2-10;
		try {
			img = Image.createImage("/image1.png");
		}
		catch (IOException e) {
			e.printStackTrace();
		}
	}
	private void paintTileImage(Graphics g){
		g.setColor(0x424242);
		g.drawRect(tileX-1, tileY-1, tileW+2, tileH+2);
		g.setClip(tileX, tileY, tileW, tileH);
		for(tileX=10;tileX<w-22;tileX+=img.getWidth()){
			for(tileY=10;tileY<h/2-11;tileY+=img.getHeight()){
				g.drawImage(img, tileX, tileY, 0);
			}
		}
		g.setClip(0, 0, w, h);
	}
	
	private void paintTensileImage(Graphics g) throws MediaException, IOException{
		g.setColor(0x551A8B);
		g.drawRect(10, h/2+10, w-20, h/2-20);
		g.setClip(11, h/2+11, w-22, h/2-22);
//		g.fillRect(0, 0, w, h);
		Image image = ImageUtils.zoomImage(img, w-22, h/2-22);
		g.drawImage(image, 11, h/2+11, 0);
		
/*		MediaProcessor processor = GlobalManager.createMediaProcessor("image/raw");
		InputStream is = getClass().getResourceAsStream("/image1.png");
//		OutputStream os = null;
		g.drawImage(Image.createImage(is), 11, h/2+11, 0);
		ByteArrayOutputStream bos = new ByteArrayOutputStream();
	    DataOutputStream dos = new DataOutputStream(bos);
		processor.setInput(is);
		processor.setOutput(dos);
		String controlName = "javax.microedition.amms.control.imageeffect.ImageTransformControl";
		ImageTransformControl transform = (ImageTransformControl) processor.getControl(controlName);
		int origWidth = transform.getSourceWidth();
		int origHeight = transform.getSourceHeight();
		transform.setSourceRect( 0, 0, origWidth, origHeight);
		transform.setTargetSize( origWidth + 100, origHeight + 100, 0);
		processor.complete();*/
		 
	}
	
	protected void paint(Graphics g) {
		g.setColor(-1);
		g.fillRect(0, 0, w, h);
		
		paintTileImage(g);
		
		try{
			paintTensileImage(g);
		}catch(Exception e){
			e.printStackTrace();
		}
		
	}

}

⌨️ 快捷键说明

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