안드로이드 개발 질문/답변
(글 수 45,052)
주구장창 질문만 드리는 1인입니다;; 고수님들.
다름 아니오라, 리모트 버튼위에 이미지뷰를 올려놓고 깜박이게 하려고 처리하려는데 계속 시간만 허비해서 질문 드립니다.
Lock버튼을 누르고 해당 단말기에서 응답이 올 경우 확인이 되었다는 단지 이미지뷰가 깜박이는 표시를
해주려고 하는데 생각보다 처리가 쉽지 않은거 같아 질문 드립니다.
여러 고수님들이 framAnimation을 사용하라고 하셔서 해봤는데 제가 원하는 것 처럼 안되더군요.
제가 생각할때는 단지 보였다가 안보였다만 처리하면 될 것 같은데.. 초보한테 가르침을 주십시오.
조건 : 1) 이 이미지뷰는 처음에는 안보여야 한다 android:visibility="gone"
2) 해당 단말기에서 확인응답이 올 경우 반짝거린다.
3) 반짝거린 후 다시 안보여야 한다.
감사합니다.
2011.10.04 12:33:02
제가 구글링해서 쓰는 Flink 소스입니다.
import android.os.Handler;
public class Blink
{
private int _interval;
public int getInterval()
{
return _interval;
}
public void setInterval(int delay)
{
_interval = delay;
}
private Handler handler;
private Runnable _tickHandler;
private Runnable delegate;
private boolean ticking;
public boolean getIsTicking()
{
return ticking;
}
public Blink(int interval)
{
_interval = interval;
handler = new Handler();
}
public Blink(int interval, Runnable onTickHandler)
{
_interval = interval;
setOnTickHandler(onTickHandler);
handler = new Handler();
}
public void start(int interval, Runnable onTickHandler)
{
if (ticking)
return;
_interval = interval;
setOnTickHandler(onTickHandler);
handler.postDelayed(delegate, _interval);
ticking = true;
}
public void start()
{
if (ticking)
return;
handler.postDelayed(delegate, _interval);
ticking = true;
}
public void stop()
{
handler.removeCallbacks(delegate);
ticking = false;
}
public void setOnTickHandler(Runnable onTickHandler)
{
if (onTickHandler == null)
return;
_tickHandler = onTickHandler;
delegate = new Runnable()
{
public void run()
{
if (_tickHandler == null)
return;
_tickHandler.run();
handler.postDelayed(delegate, _interval);
}
};
}
}




답은 아니지만 gone 은 이미지뷰까지 차지 하지 않겠다는거고요
invisible 을 쓰시는게 더 좋지 않을까요,
구조가 어떻게 되어있는지 잘은 알 수 없지만....