touchscreen.java

来自「Android平台上实现流化播放」· Java 代码 · 共 63 行

JAVA
63
字号
package com.pocketjourney.view;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PointF;
import android.graphics.Paint.Style;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.LinearLayout;

public class TouchScreen extends LinearLayout { 

	private List<PointF> pointsToDraw = new ArrayList<PointF>();
	
	private Paint	touchPaint;
    
	public TouchScreen(Context context, AttributeSet attrs) {
		super(context, attrs);
		init();
	}

	public TouchScreen(Context context) {
		super(context);
		init();
	}

	private void init() 
	{
		touchPaint  = new Paint();
		touchPaint .setARGB(255, 0, 0, 255);
		touchPaint .setAntiAlias(true);
		touchPaint .setStyle(Style.STROKE);
		touchPaint .setStrokeWidth(2);
	}

	@Override
    public boolean onTouchEvent(MotionEvent event) 
	{
		pointsToDraw.add(new PointF(event.getX(), event.getY()));
		invalidate();
		return true;
	}
	
    @Override
    protected void onDraw(Canvas canvas) 
    {
		super.dispatchDraw(canvas);

		Iterator<PointF> iterator = pointsToDraw.iterator();
    	while (iterator.hasNext()) {
    		PointF p = iterator.next();
    		canvas.drawCircle(p.x, p.y, 5, touchPaint);
    	}
    }
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?