작성된 글 리스트를 불러오는 시간이 있어서 스플래쉬 화면을 넣었는데요
글 불러오는시간동안 "로딩중 . . . . . . ."이라는 커스텀된 로딩 이미지를 보여줘야 합니다.
"로딩중 . . . . . . "의 쩜들은 한개의 동일한 이미지를 가져다 늘어놓은 형태이구요.
쉽게 설명을 드리자면
1. 로딩중 .
2. 로딩중 . .
3. 로딩중 . . .
......
이런식으로 "글 리스트를 불러오는 시간동안에만!" 점을 순서대로 일정 시간 간격으로 보여주면 됩니다.
Handler handler;
ImageView tag;
handler = new Handler(){
@Override
public void handleMessage(Message msg) {
LinearLayout layDots = (LinearLayout)findViewById(R.id.lay_dots);
ImageView dot1 = (ImageView)findViewById(R.id.img_splash_dot_1);
ImageView dot2 = (ImageView)findViewById(R.id.img_splash_dot_2);
ImageView dot3 = (ImageView)findViewById(R.id.img_splash_dot_3);
ImageView dot4 = (ImageView)findViewById(R.id.img_splash_dot_4);
ImageView dot5 = (ImageView)findViewById(R.id.img_splash_dot_5);
ImageView dot6 = (ImageView)findViewById(R.id.img_splash_dot_6);
for(int i = 1; i<7; i++){
tag = (ImageView) layDots.getTag(i);
tag.setVisibility(View.VISIBLE);
handler.sendEmptyMessageDelayed(0, 500);
}
finish();
}
};
당연히 안되는 소스인걸까요...? ^^
layDtos레이아웃 안에 저 6개의 쩜들이 들어있구요.
각 쩜에 태그를 1부터 6까지 달아놓은 상태입니다.
그래서 for안에서 제가 하고싶었던건 layDots안에 있는 태그 1부터 불러와서
Invisible로 해놓은 이미지들은 visible로 바꿔라.
그리고 0.5초 멈춰있어라~
이렇게 한건데... 발소스보면 모르실수 있을꺼같아 설명 덧붙혔습니다.
자바+안드로이드 개발해본 기간 1달입니다...ㅠ
쉽고 친절히 알려주시면 무한감사하겠습니다.




handler.sendEmptyMessageDelayed(0, 500); <=이게 for문 안에 있으면 안될것 같아요. i=1일때 실행하고 message를 보내면 다시 findviewbyId하고 또 1부터 시작하게 될텐데.... 차라리 Thread.sleep(500)을 쓰시는건 어떨까요?
그리고 초기화를 핸들러 안에서 하지 마시고 onCreate에서 미리 해두시면 핸들러가 호출될때마다 초기화하는걸 막으실 수 있을거 같구요..
이미지뷰를 배열에 담아서 for문에 불러오는것도 효율적일 것 같네요.