Glow quando toque na tela no Android?
-
22-09-2019 - |
Pergunta
Quando eu tocar onde quer que seja na tela, esse ponto será brilho (nada além de um flash ou brilho) por algum tempo. Como fazer isso? Algum exemplo ou ideia ?? Eu tenho que implementar para colocar botões nele. Exatamente quando eu toque na tela, ela brilha algum tempo e o botão aparecerá no ponto em que eu toquei.
Solução
Você terá que criar uma visualização personalizada e substituir o OTOCHEVENT e desenhar. Aqui está um exemplo muito simples. Você pode fazer referência a uma visualização personalizada em um layout XML se usar o nome do pacote, ie 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;
}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow