0
私はいくつかのビューを含むLinearLayoutを持っています。 LinearLayout内のすべてがグレースケールカラーモードで描画されるようにすることは可能ですか?どのように砂漠化するにはアンドロイドで見る?
私はいくつかのビューを含むLinearLayoutを持っています。 LinearLayout内のすべてがグレースケールカラーモードで描画されるようにすることは可能ですか?どのように砂漠化するにはアンドロイドで見る?
LinearLayoutを拡張し、dispatchDrawメソッドをオーバーライドする必要があります。
次に、LinearLayoutとキャンバスのサイズのビットマップを作成します。新しいキャンバスをパラメータとしてsuper.dispatchDrawを呼び出します。その後、元のキャンバスにビットマップを描画し、塗料でColorFilterを設定します。ここ
は例です:
private Bitmap mBitmap;
private Canvas mCanvas;
private Paint mPaint;
public {Constructor}{
mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
ColorMatrix colorMatrix = new ColorMatrix();
colorMatrix.setSaturation(0);
ColorMatrixColorFilter colorFilter = new ColorMatrixColorFilter(colorMatrix);
mPaint.setColorFilter(colorFilter);
}
@Override
public void onSizeChanged(int w, int h, in oldw, int oldh){
mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
mCanvas = new Camvas(mBitmap);
}
@Override
public void dispatchDraw(Canvas canvas){
super.dispatchDraw(mCanvas);
canvas.drawBitmap(mBitmap, 0, 0, mPaint);
}
は無効として、レイアウトを設定しますか? –
あなたは次のようなことを意味しますか:http://stackoverflow.com/questions/7068873/how-can-i-disable-all-views-inside-the-layout? – AsfK