Dans mon application, j'utilise mon widget sélecteur de couleurs personnalisé. Dans onDraw
méthode mixer deux Shaders
en utilisant le code suivant:Composer deux shaders (sélecteur de couleur)
ComposeShader mShader = new ComposeShader(mValShader, mSatShader, PorterDuff.Mode.MULTIPLY);
Cependant, le résultat que je reçois est pas ce que je voudrais faire. Ci-dessous vous pouvez voir comment le Shaders
mentionné ci-dessus ressemble:
+ =
Comme vous pouvez le voir ne fonctionne pas totalement ...
Voici comment résultat devrait ressembler à (plus ou moins):
EDIT (solution possible):
pour le faire fonctionner, je dois utiliser le code suivant :
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
Cependant, je ne comprends pas vraiment comment cette ligne de code affecte ma demande. Je veux dire que IU comprend qu'il règle le HARDWARE ACCELERATION
, y a-t-il des conséquences à cela pour mon application? Devrais-je le rallumer après avoir dessiné le Shader
? Quelqu'un pourrait-il expliquer?