светиться при касании экрана в андроиде? - PullRequest
7 голосов
/ 27 марта 2010

когда я касаюсь, где бы то ни было на экране, эта точка будет светиться (не что иное, как вспышка или блеск) в течение некоторого времени. как это сделать? любой пример или идея ?? Я должен реализовать, чтобы поставить кнопки на нем. Когда я коснусь экрана, он будет светиться некоторое время, а затем в точке, где я коснулся, появится кнопка.

1 Ответ

11 голосов
/ 27 марта 2010

Вам нужно будет создать пользовательский вид и переопределить ontouchevent и рисовать. Вот очень простой пример. Вы можете ссылаться на пользовательское представление в макете xml, если используете имя пакета, т.е. com.test.CustomView.

 public class CustomView extends ImageView{
    public CustomView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    public CustomView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public CustomView(Context context) {
        super(context);
    }
    boolean drawGlow = false;
    //this is the pixel coordinates of the screen
    float glowX = 0;
    float glowY = 0;
    //this is the radius of the circle we are drawing
    float radius = 20;
    //this is the paint object which specifies the color and alpha level 
    //of the circle we draw
    Paint paint = new Paint();
    {
        paint.setAntiAlias(true);
        paint.setColor(Color.WHITE);
        paint.setAlpha(50);
    };

    @Override
    public void draw(Canvas canvas){
        super.draw(canvas);
        if(drawGlow)
            canvas.drawCircle(glowX, glowY, radius, paint);
    }
    @Override
    public boolean onTouchEvent(MotionEvent event){
        if(event.getAction() == MotionEvent.ACTION_DOWN){
            drawGlow = true;
        }else if(event.getAction() == MotionEvent.ACTION_UP)
            drawGlow = false;

        glowX = event.getX();
        glowY = event.getY();
        this.invalidate();
        return true;
    }
}   
...