Android TV开发遇到的图片失真问题以及对应的解决办法

来源:互联网 发布:酒驾软件 浙江工业大学 编辑:程序博客网 时间:2024/06/06 12:27

  现在的Android机顶盒为了兼容电视屏幕,一般都会设置一个修改分辨率的功能。然而这个修改分辨率很多时候其实不是修改系统实际分辨率,而是一个输出分辨率。
  因为在Android系统中,图像从生成到最后显示在屏幕上大概需要经过以下过程:nativeui—>framebuffer—>显示屏。平时我们所说的系统分辨率就是nativeui这里的,而现在很多android盒子修改分辨率则是修改framebuffer到显示屏这里的。也就是说系统分辨率是固定的,生成的图片大小也是固定的,但是在输出到屏幕上的时候会对这个图片进行一个拉伸或者收缩。
  假设我们盒子系统分辨率是1080p,如果把输出分辨率调到了720p,那么图像就会出现收缩的现象,这也就是图片失真的由来。尤其是那种圆形的图片(内容为圆形),在拉伸或者收缩的过程中,很容易在内容边缘产生锯齿,这个锯齿我们是无法通过设置Paint来减少的,因为我们图像的绘制已经完成,所以在最后的显示上肯定出现失真的情况,尤其是实际分辨率和输出分辨率差别比较大的时候。
  如果出现这种,我们有没有解决办法呢?解决办法还是有的,但是并不是一个完美的解决办法,只能算一个折中的方案。具体做法如下:
  美术在出图的时候,适当的给图片周围增加几个个像素的透明区域,然后给这个区域做一个渐变的效果(根据具体图片具体内容来决定,逐渐向图片边缘淡化直至透明),最终显示的结果就是图片周围会有一圈模糊的图像,但是能够消除较大部分的锯齿。
  所以在实际开发中,可以根据具体情况决定是否采用上诉方案。

0 0
原创粉丝点击