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

发布于 2024-10-11 19:51:42 字数 270 浏览 1 评论 0原文

当使用具有精细褪色阴影的透明 PNG 图像时,Android 屏幕上的阴影周围总会有一条边缘线。它不会在模拟器或 Exclipse 中显示这一点。看照片。

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

在此示例中,图像被加载到 ImageButton 视图中。我尝试将其作为源或背景,并且质量相同。

替代文字

When using a transparent PNG image which has a fine fading shadow always there is an edge line around the shadow on the Android screen. It does not show this in emualator or Exclipse. See photo.

I wonder if there is way to improve on this. Is this something to do with inability of Android screen to show all 24 bit colours or the fact that is scaling and resampling image?

In this example the image is loaded into an ImageButton view. I tried it as source or background and it is the same quality.

alt text

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

夜未央樱花落 2024-10-18 19:51:42

您所看到的伪像称为“条带”,这是您的显示器每像素 16 位的结果。

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

或者,您可以将窗口设置为 32bpp,并将以下行添加到 Activity 的 onCreate() 中,位于 super.onCreate()setContentView(). :

    getWindow().setFormat(PixelFormat.RGBA_8888);

The artefact you are seeing is known as "banding" and it is a consequence of your display being 16bits per pixel.

The best way to resolve this is to add some "noise" to your image asset in Photoshop or Paint.NET.

Alternatively you can set your window to be 32bpp with the following line added to your activity's onCreate(), between super.onCreate() and setContentView(). :

    getWindow().setFormat(PixelFormat.RGBA_8888);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文