2016-03-13 63 views
0

我創建了一些方運行,並給出了這個代碼是:Android的改變油漆顏色運行

 mBorderPaint = new Paint(mPaint); 
     mBorderPaint.setColor(Color.parseColor("#FFFFFFFF")); 
     mBorderPaint.setShadowLayer(DisplayUtil.dip2px(getContext(), 2.0f), 0, 0, Color.parseColor("#33000000")); 

,我想改變

mBorderPaint.setColor(Color.parseColor("#FFFFFFFF")); 

代碼

mBorderPaint.setColor(Color.parseColor("#00FFFFFF")); 

在應用程序運行。所以當用戶觸摸屏幕上的某個地方,除了創建廣場,我得到完美的烤麪包信息,但顏色不會改變。這裏是我的代碼不斷變化的部分;

if (mGone&& goneRect(x,y)&&!mInDelete&&!mInController&&!mContentRect.contains(x, y)) 
      { 
       Toast.makeText(this.getContext(),"Your message.", Toast.LENGTH_LONG).show(); 
       mBorderPaint.setColor(Color.parseColor("#00FFFFFF")); 

      } 

所以我得到烤完美的「你的信息」然而顏色變化沒有發生。我如何在應用程序運行中更改這個?

+0

你需要調用invalidate()。油漆被應用,但視圖本身沒有重繪。 – darja

回答

1

您必須在onDraw(Canvas canvas)內添加invalidate()。 有了這個,你的視圖可以「刷新」你的油漆

+1

this.invalidate();解決了我的問題。非常感謝 :) –