2012-04-01 64 views
0

在画布上点击画的地方。这是代码:Android和绘画明星图片

public class CanvasdrawActivity extends Activity implements OnTouchListener { 
    ImageView imageView; 
    Bitmap bitmap; 
    Bitmap bitmap2; 
    Canvas canvas; 
    Paint paint; 

    float downx = 0,downy = 0,upx = 0,upy = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    imageView = (ImageView) this.findViewById(R.id.imageView1); 
    Display currentDisplay = getWindowManager().getDefaultDisplay(); 
    float dw = currentDisplay.getWidth(); 
    float dh = currentDisplay.getHeight(); 

    bitmap = Bitmap.createBitmap((int) dw, (int) dh, 
     Bitmap.Config.ARGB_8888); 
    bitmap2=BitmapFactory.decodeResource(getResources(), 
      R.drawable.star_bez_nog); 

    canvas = new Canvas(bitmap); 

    imageView.setImageBitmap(bitmap); 
    imageView.setOnTouchListener(this); 
    } 

    public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 
    switch (action) { 
    case MotionEvent.ACTION_DOWN: 
     downx = event.getX(); 
     downy = event.getY(); 
     canvas.drawBitmap(bitmap2, downx, downy, null); 
     imageView.invalidate(); 
     break; 

    } 
    return true; 
    } 
} 

我怎么能画这张照片只有一次。当我点击第一次明星时,当我点击其他地方没有任何事情发生。绘制应该只工作一下。

回答

1

设置一个布尔值。

Canvas canvas; 
Paint paint; 
Boolean drawOnlyOnce = true; 

public boolean onTouch(View v, MotionEvent event) { 
... 
if (drawOnlyOnce) { 
    canvas.drawBitmap(bitmap2, downx, downy, null); 
    imageView.invalidate(); 
    drawOnlyOnce = false; 
} 
...