问候水龟 . 您的代码段看起来正确 . 只有两个想法脱离我的头脑 .
1)您确定您的位图是ARGB_8888格式吗?默认情况下,您可能会获得另一种格式,具体取决于具体情况 .
2)Alpha值是绝对的(不是百分比),所以我认为你希望第一个参数是127而不是50 .
编辑:此外,嗯,当你减少alpha时,你必须确保你正在绘制一个有效显示的背景 . 如果我已经解决了您的问题或者您需要更多帮助(也许我们需要查看更多代码),请告诉我 .
编辑:我认为问题是你没有背景 . 如果你减少阿尔法并且你是一个现场壁纸,那么我就是这样做的.2651755_我是怎么做的:
c.drawBitmap(sBG,0,0,null);
c.drawBitmap(sSprite,mWidth / 2,mHeight / 2,null);
sBG是一个充满了heiroglyphics的位图,通过我的"ghostly"精灵显示(sSprite有alpha~127) .
我只是将位图覆盖在画布上,当我渲染画布时,它一切都很好 . :-)
编辑:减少alpha通常用于让一些东西从后面显示出来 . 我认为您需要通过“淡化颜色以使其看起来有点半透明”来确定您的意思(数学上) . 例如,将红色变成粉红色意味着混合成白色;这相当于具有白色背景的半透明(白色混合是如何将饱和色彩变为粉彩) . 我建议玩GIMP或Photoshop(可以调整图层alpha)以确定最能满足您需求的效果,然后尝试在Android中复制它 .
编辑:我认为你可能会提到这些是棘手的,希望你正在努力解决的有趣事情 . 在计算机图形学中,有时我们必须做一些不一定直观的事情来达到预期的效果 . 我认为令人信服的半透明性是非平凡的......需要使用背景物体,灯光和/或动画 . 我对这个特定效果了解不多,但这里有一个你可能喜欢的链接:http://www.neilblevins.com/cg_education/translucency/translucency.htm
我知道的一点是创建金属纹理 . 诀窍在于:你几乎总是要使用反射 . 这个youtube视频是一个很好的演示:http://www.youtube.com/watch?v=k6ZiRNkbWPw
真正参与其中的人甚至选择了HDRi!例如 . 看看这里的反射球体:http://en.wikibooks.org/wiki/Blender_3D:_Noob_to_Pro/HDRi