手机上如何绘制半透明图片[JavaME]

简介:

[JavaME]手机上如何绘制半透明图片

windcao提供了一个CreateAlphaImage方法

Windcao提供的CreateAlphaImage的意思是这样的“如果需要半透明可以先在image上画,然后把这个Image弄成半透明的。最后将Image绘到Canvas上就OK了”。

 他的处理函数如下所示:

ExpandedBlockStart.gif public   static  Image CreateAlphaImage( int  Alphalike  0x88000000 ,Image src)  {
InBlock.gif        
int w,h;
InBlock.gif        w
=src.getWidth();
InBlock.gif        h
=src.getHeight();        
InBlock.gif        
int len=wh;
InBlock.gif        
int srcRgb[]=new int[len];
InBlock.gif        
int dscRgb[]=new int[len];
InBlock.gif
ExpandedSubBlockStart.gif        
try{
InBlock.gif            src.getRGB(srcRgb,
0,w,0,0,w,h);
ExpandedSubBlockEnd.gif        }

ExpandedSubBlockStart.gif        
catch(Exception ex){
InBlock.gif            ex.printStackTrace();
ExpandedSubBlockEnd.gif        }

InBlock.gif
ExpandedSubBlockStart.gif        
for (int i = 0; i  len; i++{
InBlock.gif         
InBlock.gif                dscRgb[i] 
= srcRgb[i]+Alpha;
ExpandedSubBlockEnd.gif        }

InBlock.gif        Image result
=Image.createRGBImage(dscRgb,w,h,true);
InBlock.gif        
return result;
ExpandedBlockEnd.gif    }

 

我在工程中用了,有效果,好像也不需要对原始的Image src有什么特殊要求。

translucenceCustomItem  
 

可以与

directlypaintCustomItem   

做一下对比。

后者没有将图片作CreateAlphaImage处理。所以绘制的图片覆盖了原来的文字。

我是在一个CustomItem扩展类中使用这个半透明图片的,代码如下所示:



ExpandedBlockStart.gif public   class  StringKeyItem  extends  CustomItem {
InBlock.gif。。。
InBlock.gif      
private static Image m_imageCommand =
InBlock.gif    CommandResources.getImage(CommandResources.IMG_COMMAND);
InBlock.gif。。。
InBlock.gif      
public StringKeyItem( 
InBlock.gif       GUIController control,
InBlock.gif       
int inIndent, String inText )
ExpandedSubBlockStart.gif       
{
InBlock.gif。。。
InBlock.gif    m_imageCommand 
= CreateAlphaImage(0x88000000,m_imageCommand);
ExpandedSubBlockEnd.gif       }

InBlock.gif
InBlock.gif。。。
InBlock.gif    
public void paint( Graphics g, int w, int h )
ExpandedSubBlockStart.gif        
{
InBlock.gif。。。
InBlock.gif           
// draw the text: word-wrap is an exercise for the reader
InBlock.gif
            g.drawString( text, 
InBlock.gif                indent 
* INDENT_MARGIN + FONT_HEIGHT, 0, g.TOP | g.LEFT );
InBlock.gif            
ExpandedSubBlockStart.gif    
/*
InBlock.gif     * 绘制一个半透明的前景图片,刚好就贴在StringKeyItem的文字上,还可以显示底色以及文字
ExpandedSubBlockEnd.gif     
*/

InBlock.gif    g.drawImage(m_imageCommand, 
InBlock.gif            indent 
* INDENT_MARGIN + FONT_HEIGHT, 0, g.TOP | g.LEFT);
ExpandedSubBlockEnd.gif        }

 

实践效果还是不错的。

感谢windcao的代码共享和思路提供!

目录
相关文章
|
9月前
|
移动开发 JavaScript 前端开发
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
数据可视化大屏百度地图手机端标注开发实战案例解析(jsAPI接口、标注分类图片、文本标签、分类筛选、自适应高度信息弹窗、PHP后端API)
147 0
|
算法 Java Android开发
Android开发:使用Java对手机截图图片进行任意区域的颜色对比度处理操作
开发项目过程中,对于手机屏幕截图,需要对获取到的截图的任意部分进行区域颜色对比度的识别操作,由此判定任意指定区域是否满足某对比度基本标准,但是该功能在网上任何地方都没有找到过Java方面的代码,于是根据RGB转换测试的原理:即获取每个像素点的RGB,通过RGB对比度定义公式进行像素点的集合换取。
|
Android开发
android手机中图片的拖拉及浏览功能
android手机中图片的拖拉及浏览功能
74 1
|
存储 缓存 编解码
手机连接电脑DCIM目录下文件夹和图片显示不全
学习手机连接电脑DCIM目录下文件夹和图片显示不全。
1608 0
|
缓存 JavaScript 前端开发
|
安全 Android开发 iOS开发
一张图片使Android手机集体变砖,目前尚无解决方法
近日,一名网友在 Twitter 上传了一张壁纸并表示该壁纸会使他的三星手机崩溃。此前已经有日历 Bug 导致三星手机集体崩溃的事情发生,而这一次三星手机再次中招。只因为使用了一张风景壁纸就能导致手机崩溃?经该网友测试,不止是三星,包括谷歌亲儿子 Google Pixel 在内的众多手机品牌纷纷中招。
一张图片使Android手机集体变砖,目前尚无解决方法
|
小程序 前端开发 JavaScript
微信小程序 | 使用 canvas 生成朋友圈分享图片并保存到手机相册
小程序只能转发给好友,或者转发到微信群,并不能转发到朋友圈,那么朋友圈的巨大流量应该怎么利用起来呢?
661 0
从手机拍摄的图片里获取拍摄地点的经纬
从手机拍摄的图片里获取拍摄地点的经纬
111 0
从手机拍摄的图片里获取拍摄地点的经纬
|
Python
Python3 使用pli优化图片大小,相机或手机拍图片根据exif旋转、纠正方向
首先安装 pip install pillow 如果报错,请根据报错的信息去搜索一下,一般都能得到解决,未找到请升级pip python -m pip install --upgrade pip 或者 pip install --upgrade pip 那么写个方法 from PIL import.
1039 0
|
API
小程序 — 保存图片到手机相册①
讲一下在微信小程序中,怎么把网络图片保存到本机相册中;这个功能其实在小程序开发中还是很常见的,比如保存海报之类的等等。 GitHub:https://github.com/Ewall1106/miniProgramDemo 1、保存图片 (1)要保存图片到手机相册中,所以首先我们来看看保存图片的api方法是什么? 我们使用的是wx.saveImageToPhotosAlbum(OBJECT)这个api方法,其中OBJECT的参数可以是: 图片来源自小程序官网 请注意我红框标记的部分, 不支持网络图片路径。
1491 0

热门文章

最新文章