深入理解Image.createImage()

系统 1637 0

这个话题给大家深入讲讲Image.createImage(width,height);

我始终认为:深入的理解一种机制,然后才有灵活多变的应用!如果你不能深入的理解它,那么也只会死板的套用,如果你想做个copy代码的程序员,那么就没必要看我的文章。

Image.createImage(width,height);这个方法到底是做什么用的?

我们先看下doc里的一段说明:

An immutable image may be created from a mutable image through the use of the createImage method. It is possible to create a mutable copy of an immutable image using a technique similar to the following:

              
                    Image source; // the image to be copied        source = Image.
                
                  createImage
                
                (...);        Image copy = Image        .
                
                  createImage
                
                (source.getWidth(), source.getHeight());            Graphics g = copy.getGraphics();        g.drawImage(source, 0, 0, TOP|LEFT);       
              
            

这句话的意思是:通过Image.createImage(width,height);可以得到一份图片的copy。

也就是说:我们可以把某个图片缓存在内存中,然后随时可以把它调出来用。

好,理解了这点,下面的就好办!

一:既然这个方法缓存图片的一份copy,那么我们就可以利用它来缓存我们的图片,然后在需要的时候把它刷新的手机屏幕上(也就是g.drawImage()把它画到屏幕上),从而使这个方法可用于双缓冲技术。

当然,这个功能是我们常用的,我这里就不罗嗦了!

我要将的是下面的一个应用!

二:利用Image.createImage(windth,height)来绘制背景。

可能大家看到这个标题都很诧异,我们常用绘制背景的方法是剪贴(setClip())。

下面我来演示怎么用这个方法绘制背景title。

首先,我们计算需要用的title图片块,也就是拼凑大地图的小图片块。

然后,我们在内存中把这些小图片块按照数组索引号缓存在内存中。

最后,绘制地图的时候我们再把这些小图片块取出来。

结果就是,因为我们把这些小图片块缓存在内存块中,所以取出来的时候更快。

下面是演示代码:

Image img[] = new Image[4];

for(int i = 0;i < 4;i++)

 img[i] = Image.createImage(width,height);

int[][] mapTitle = { 1,1,1,1,1,1,1,1,

                                 2,3,1,0,3,2,2,2

.........

}

最后通过索引把图片取出来画到屏幕上就OK了。



Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=640337


深入理解Image.createImage()


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论