現在、Crosswalkエンジンを使用しているWebブラウザCornowserで作業していますが、問題が発生しました。 カラーモードは、UltimateBrowserProjectにあるように実装したいと思います。XWalkViewのカラーフィルタを設定する方法は?
ただし、カラーフィルタは適用されません。 レイヤータイプを設定して、カラーフィルターでPaint
を渡しました。ここで
ソースコードです:
// Handle color modes
public void drawWithColorMode() {
Logging.logd("Applying web render color mode...");
RenderColorMode.ColorMode cm = CornBrowser.getBrowserStorage().getColorMode();
Paint paint = new Paint();
final float[] negativeColor = {
-1.0f, 0, 0, 0, 255, // Red
0, -1.0f, 0, 0, 255, // Green
0, 0, -1.0f, 0, 255, // Blue
0, 0, 0, 1.0f, 0 // Alpha
};
final float[] darkColor = {
1f, 0, 0, 0, -255,
0, 1f, 0, 0, -255,
0, 0, 1f, 0, -255,
0, 0, 0, 1f, 0
};
final float[] invertColor = {
-1f, 0, 0, 0, 0,
0, -1f, 0, 0, 0,
0, 0, -1f, 0, 0,
0, 0, 0, 1f, 0
};
Logging.logd("Found color mode: " + cm.mode);
switch(cm.mode) {
case RenderColorMode.ColorMode.NORMAL:
Logging.logd("Applying normal color mode");
paint.setColorFilter(null);
break;
case RenderColorMode.ColorMode.DARK:
Logging.logd("Applying dark mode");
paint.setColorFilter(new ColorMatrixColorFilter(darkColor));
break;
case RenderColorMode.ColorMode.NEGATIVE:
Logging.logd("Applying negative mode");
paint.setColorFilter(new ColorMatrixColorFilter(negativeColor));
break;
case RenderColorMode.ColorMode.INVERT:
Logging.logd("Applying inverted mode");
paint.setColorFilter(new ColorMatrixColorFilter(invertColor));
break;
case RenderColorMode.ColorMode.GREYSCALE:
Logging.logd("Applying greyscale");
ColorMatrix m = new ColorMatrix();
m.setSaturation(0);
paint.setColorFilter(new ColorMatrixColorFilter(m));
break;
default:
Logging.logd("Warning: Unknown color mode " + cm.mode + ".");
break;
}
Logging.logd("Setting layer type...");
setLayerType(LAYER_TYPE_HARDWARE, paint);
}
私もdraw(canvas)
をオーバーライドすることで、それを試してみましたが、それは同じ結果です。
誰もXWalkViewのカラーフィルタを設定する方法は知っていますか?
ありがとうございます!
UPDATE:
SurfaceView
は、カラーフィルタをサポートしていないということのようです。 どうにかするには? UPDATE 2
: この質問はあまり注目を集めていないようです...私はそれがどのように動作するかを、私のソースコードを編集し、それが動作しません、それを確認してください、logcatは私に次のような出力を提供します:
D/Cornowser: Applying web render color mode...
D/Cornowser: Found color mode: 2
D/Cornowser: Applying negative mode
D/Cornowser: Setting layer type...
最終更新: 私は実際にそれではJavaScriptを使用して作業しました。 解決方法を知りたい場合は、right hereをご覧ください。呼び出したい理由
私は理解していませんdraw()の最後に無効にします。 – xdevs23