0
これは私のビューの最も単純化されたバージョンです。onDrawで背景色を更新する方法
public class MyView extends View {
private int mBackgroundColor = android.R.color.white;
@Override
public void setBackgroundColor(int color) {
super.setBackgroundColor(color);
mBackgroundColor = color;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(mBackgroundColor);]
//canvas.drawColor(mBackgroundColor, Mode.CLEAR);
//canvas.drawBitmap(mBitmap, mRectSrc, mRectDst, mPaint);
}
}
問題がsetBackgroundColor
が活動から呼び出されたときを変更しない背景色です。私は明らかに見ていないと思う。解決しよう
:
は必ずandroid.graphicsことを確認してくださいnmJohnから将来の求職者
約clipRect
//Clear the screen
canvas.clipRect(0, 0, viewWidth, viewHeight, Region.Op.REPLACE);
mPaint.setColor(mBackgroundColor);
canvas.drawRect(0, 0, viewWidth, viewHeight, mPaint);
//Draw the image
canvas.clipRect(mRectDst.left, mRectDst.top, mRectDst.right, mRectDst.bottom, Region.Op.REPLACE);
canvas.drawBitmap(mBitmap, mRectSrc, mRectDst, mPaint);
1つのより多くのヒントをヒントを取りました。色: x形式は、android.R.colorという形で提供されています。[White/Black/..]はしばらくの間は気づきませんでした。
私はこの分野の騒ぎです。あなたはもっと説明的になりますか? – Samuel
うーん、そのまま動作するはずです。無効化が実際に呼び出されていることを確認できますか? – nmjohn
i onDrawが呼び出されていて、backgroundColorが変更されたときにinvalidate()がそこにあります。 – Samuel