在我的應用程序中,我使用了我的自定義顏色選取器小部件。在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
後再打開它嗎?誰能解釋一下?