2013-03-03 119 views
0

在我的應用程序觸摸事件我想繪製矩形 - 我試着this.butnot得到如何繪製。請幫助我。 我想在觸摸的點上繪製矩形。 如何在drawRect()方法中使用getX()和getY()? 如下代碼 -ontouch在android繪製矩形

public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction()==MotionEvent.ACTION_DOWN) { 
           int X=event.getX(); int Y=event.getY(); 
        Paint paint = new Paint(); 
        paint.setAntiAlias(true); 
        paint.setColor(getResources().getColor(R.color.Yellow)) ; 
        paint.setAlpha(opacity); 
           Canvas canvas1 = new Canvas(mutableimage1); 
          canvas1.drawRect(2.5f,2.5f,2.5f,2.5f, paint); 
           } 
       } 

回答

0

不要在onTouch方法實例化一個新的對象:canvas1 = new Canvas(...) 會造成死機和滯後。創建此畫布以善於創建視圖。

要小心,我認爲你的drawRect()調用不會吸引你所需要的: 您繪製一個矩形,與X = 2.5 Y = 2.5寬度= 2.5高= 2.5

我假設你需要定位您的矩形根據觸摸的位置是:

//set the x and y pos according to the touch point 
// by removing half the size of the rect we center it on this point ;) 
canvas1.drawRect(X-1.25f, Y-1.25f, 2.5F, 2.5f, paint); 

否則這是相當正確的,但要知道,你是一個可變的位圖(「mutableimage1」)繪製將沒有必要顯示。

您可能想要在視圖的onDraw(Canvas viewCanvas)方法中添加顯示。 使用:

viewCanvas.drawBitmap(mutableimage1, 0,0, aPreviouslyCreatedPaint);

+0

actully我試圖借鑑image.and矩形當我trird爲圓其working.but矩形沒有顯示 – 2013-03-03 13:56:39

+0

好吧,你可能需要比較你的代碼爲矩形和圈?有什麼區別可以導致矩形不被繪製。到目前爲止我有幫助嗎? – Guian 2013-03-03 14:06:01