android - Android 中的透明度问题

标签 android performance drawing transparency

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

例如,有一个线性布局,它有一个灰色渐变背景和两个在其上绘制的图像按钮。这些 imageButtons 具有透明背景和一个设置为源的图标。当问题显现出来时,观察到 UI 是这样绘制的: enter image description here

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

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

最佳答案

您可能希望在包含这些 View 的 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 的私有(private)变量,请将其传递给此方法以禁用硬件加速。

关于android - Android 中的透明度问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16107995/

相关文章:

javascript - Cordova 地理位置返回空

安卓错误 :Execution failed for task ':app:transformClassesWithDexForDebug'

ruby-on-rails - 我应该关心 Newrelic Rails 应用程序中的 DOM 处理时间吗?

c++ - 如何添加此代码以使用我的 arduino 打印一个完整的三角形?

android - 底部导航样式

mysql - 通过联接、全表扫描提高查询性能

r - 我如何有效地二分法

Python OpenCV : Why does fillPoly() only draw grey polygons, 无论其颜色参数如何?

.net - SuspendLayout 和 BeginUpdate 的区别

android - 双击 logcat 堆栈跟踪中的项目会打开 .class 文件(有时)