在我的应用程序中,我正在使用我的自定义颜色选择器小部件。在方法中,我使用以下代码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
?谁能解释一下?