【发布时间】:2016-12-31 21:55:48
【问题描述】:
在我的应用程序中,我使用的是自定义颜色选择器小部件。在onDraw 方法中,我使用以下代码混合了两个Shaders:
ComposeShader mShader = new ComposeShader(mValShader, mSatShader, PorterDuff.Mode.MULTIPLY);
但是,我得到的结果并不是我想要得到的。
下面你可以看到上面提到的Shaders的样子:
+ =
如您所见,它完全不起作用...
结果应该是这样的(或多或少):
编辑(可能的解决方案):
为了使它工作,我必须使用以下代码:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
但是我并不真正理解这行代码如何影响我的应用程序。我的意思是 IU 明白它设置了HARDWARE ACCELERATION,这样做对我的应用程序有什么后果吗?画完Shader后要不要再开机?谁能解释一下?
【问题讨论】:
标签: java android shader android-canvas