私は、カスタムビューの背景イメージをある程度成功させようとしています。画像は変わりますが、私はまだ古い画像の跡が見えるという問題があります。新しい画像を描画する前にキャンバスを消去しようとすると、動作しないように見えます。私は画像を格納するビットマップを作成します。イメージを変更するとき、新しいイメージを描画する前にCanvas.drawColor()を呼び出しますが、古いイメージはそのまま残ります。私はdrawColor(0)、drawColor(Color.BLACK)、c.drawColor(0、PorterDuff.Mode.CLEAR)を試しています。そういうわけで、私は私よりも経験豊かな人たちからのレビューのためにこれを投稿しなければなりませんでした。Canvas.drawColor()でキャンバスをクリアする
private int bgnd;
private boolean switching;
public void setBgnd(int incoming){
switching = true;
switch (incoming){
case R.drawable.image1:
bgnd = incoming;
this.invalidate();
break;
case R.drawable.image2:
bgnd = incoming;
this.invalidate();
break;
}
}
protected void onDraw(Canvas c){
if(switching == true){
Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd);
c.drawColor(0, PorterDuff.Mode.CLEAR);
c.drawBitmap(b, 0, 0, null);
switching = false;
}else{
Bitmap b = BitmapFactory.decodeResource(getResources(), bgnd);
c.drawBitmap(b, 0, 0, null);
}
}
私はこの2つを取るのに2日以上かかったと思います。 Thx strangeInAstrangerLand + longdooooo –