【问题标题】:Problems with Transparency in AndroidAndroid 中的透明度问题
【发布时间】:2013-04-19 15:20:37
【问题描述】:

我在一些 Android 平板电脑上偶然发现了一个问题,特别是三星 Galaxy Note、Galaxy Tab 10 和 Nexus 10。问题是在我让应用程序运行一段时间并从最近或通过通知恢复它之后,应用程序 UI 弄乱了图标和控件小部件的透明度。

例如,有一个线性布局,它有一个灰色渐变背景和两个图像按钮。这些 imageButtons 具有透明背景和一个图标集作为源。当问题出现时,可以观察到 UI 是这样绘制的:

当这种情况发生时,灰色背景渐变也会失去其 alpha 值并被绘制成平面。

以前有没有人观察到类似的行为?

【问题讨论】:

    标签: android performance drawing transparency


    【解决方案1】:

    您可能希望在包含这些视图的 Activity 上禁用硬件加速,或在 LinearLayout 容器上禁用它。

    @TargetApi(Build.VERSION_CODES.HONEYCOMB)
    private void disableHardwareAcceleration(View v) {
          if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
                v.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
          }
    }
    

    如果您有一个引用 LinearLayout 的私有变量,请将其传递给此方法以禁用硬件加速。

    【讨论】:

    • 这是开启硬件加速的 Android 设备中的已知问题吗?另外,这个问题是否记录在某个地方?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 2013-01-22
    • 2017-09-29
    • 2013-01-24
    • 2013-06-21
    • 2011-07-08
    • 1970-01-01
    相关资源
    最近更新 更多