2012-12-07 24 views
3

我正在做Android上的一個小刮刮卡遊戲。我有一個ImageView放置在屏幕的中心和一個自定義視圖。我使用特定的顏色填充自定義視圖(比如綠色,以便ImageView未顯示),然後當用戶在屏幕上移動他的手指時,我想從自定義視圖中清除顏色,以便從下方顯示ImageView。我看到這個線程:Two layers, but can't show the bottom layer in android,但堅持如何創建可擦除位圖,該位圖的繪畫和路徑的繪製。 這裏是我的XML佈局:使用分層方法進行刮刮卡遊戲

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <ImageView android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:src="@drawable/img_background" 
     android:contentDescription="@string/app_name"/> 
    <com.example.scratchcard.TouchEventView 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 
</RelativeLayout> 

而且這裏是我使用的代碼,現在的TouchEventView:

public class TouchEventView extends View { 
    private Paint paint = new Paint(); 
    private Path path = new Path(); 

    public TouchEventView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     paint.setColor(Color.TRANSPARENT); 
     paint.setAntiAlias(true); 
     paint.setStyle(Paint.Style.STROKE); 
     paint.setStrokeJoin(Paint.Join.ROUND); 
     paint.setStrokeCap(Paint.Cap.ROUND); 
     paint.setStrokeWidth(10f); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     canvas.drawColor(Color.GREEN); 
     canvas.drawPath(path, paint); 
    } 

    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     float eventX = event.getX(); 
     float eventY = event.getY(); 

     switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      path.moveTo(eventX, eventY); 
      return true; 
     case MotionEvent.ACTION_MOVE: 
      path.lineTo(eventX, eventY); 
      break; 
     case MotionEvent.ACTION_UP: 
      // nothing to do 
       break; 
     default: 
      return false; 
     } 

     // Schedules a repaint. 
     invalidate(); 
     return true; 
    } 
} 

我期待TouchEventView的像素在手指移動到去透明但不會發生。任何幫助將不勝感激。

+2

問一個具體的問題。把一些代碼(不是你的整個文件)和你正面臨的問題的快照。 – Siddharth

+0

嗨Siddarth我已經更新了建議的問題。 – ABH

+0

看看您在sdk示例中的fingerpaint演示。 –

回答