Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android上透明png中阴影的渲染质量_Android_Png - Fatal编程技术网

Android上透明png中阴影的渲染质量

Android上透明png中阴影的渲染质量,android,png,Android,Png,当使用透明PNG图像时,在Android屏幕上阴影周围总是有一条边缘线。在Emulator或Exclipse中不显示这一点。见图 我想知道是否有改进的方法。这是否与Android屏幕无法显示所有24位颜色有关,或者与缩放和重新采样图像有关 在本例中,图像加载到ImageButton视图中。我试着把它作为来源或背景,它的质量是一样的 您看到的人工制品被称为“带状”,这是您的显示为每像素16位的结果 解决此问题的最佳方法是在Photoshop或Paint.NET中为图像资源添加一些“噪波” 或者,您

当使用透明PNG图像时,在Android屏幕上阴影周围总是有一条边缘线。在Emulator或Exclipse中不显示这一点。见图

我想知道是否有改进的方法。这是否与Android屏幕无法显示所有24位颜色有关,或者与缩放和重新采样图像有关

在本例中,图像加载到ImageButton视图中。我试着把它作为来源或背景,它的质量是一样的


您看到的人工制品被称为“带状”,这是您的显示为每像素16位的结果

解决此问题的最佳方法是在Photoshop或Paint.NET中为图像资源添加一些“噪波”

或者,您可以将窗口设置为32bpp,并将以下行添加到活动的
onCreate()
,介于
super.onCreate()
setContentView()
之间:

    getWindow().setFormat(PixelFormat.RGBA_8888);

非常感谢。getWindow().setFormat(PixelFormat.RGBA_8888);真管用!不知道在Photoshop中添加“噪波”是什么意思?上面的图像/按钮使用模糊作为阴影效果。@鲁本:有趣,我不知道这个技巧。我曾经遇到过绑定问题,使用此
setFormat
方法有什么具体的缺点吗?缺点是您的窗口需要两倍的RAM,并且由于访问的内存是原来的两倍,渲染可能会更慢(尤其是软件渲染)。正如预测的那样,上面有两条注释:-)顺便说一句,值得注意的是,谷歌已经悄悄地将8888作为默认格式(从蜂巢到IIRC)。我所说的“噪音”是指位图图形包(如Photoshop、Gimp等)中该名称的效果。向图像添加“噪音”就是添加随机斑点,在这种情况下,用于消除在16bpp显示器上使用纯渐变时经常出现的不必要的带状效果。