마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

버튼 누를 때마다 다른 애니메이션 나오게 하는 법...이 있을까요오......

0 추천

 

안녕하세요...

무려 2주넘게 고민하고 있는데 잘 안 풀려서 이렇게 질문글 올립니다.

 

일단 제게는 총 9개의 이미지가 있고 이걸 3개씩 묶어서 애니메이션 파일에 넣었습니다. 그러고나서 java상에서 배열 ani_arr로 넣어둠

화면에는 한 버튼이 있고 버튼 1번 누르면 이미지1,2,3이 연달아 나오고

버튼을 한 번 더 누르면 이미지 4,5,6이 나오고 한 번 더 누르면 7,8,9가 나오게 하고 싶습니다.

// Get the app's shared preferences
		SharedPreferences app_preferences = 
				PreferenceManager.getDefaultSharedPreferences(this);

		// Get the value for the run counter
		int counter = app_preferences.getInt("counter", 0);



		ImageButton ivbtn01 = new ImageButton(this);
		ivbtn01.setBackgroundResource(image_arr[rando1]);
		final ImageView iv01 = new ImageView(this);
		iv01.setBackgroundResource(ani_arr[rando1]);
		mAni1 = (AnimationDrawable) iv01.getBackground();	

		SharedPreferences.Editor editor = app_preferences.edit();
		//iv01.setOnClickListener(new OnClickListener()
		//{
		 ivbtn01.setClickable(true);
			@Override
			public void onClick(View v)
			{
				switch(counter){
				case 0:
					ivbtn01.setOnClickListener(new OnClickListener(){
						@Override
						public void onClick(View v)
						{
							iv01.setAlpha(0);
							mAni1.start();
							//i= getCount()+1;
							//count++;

						}});
					// Increment the counter
					editor.putInt("counter",counter++);
					editor.commit(); // Very important

					mAni1.stop();

					break;
				case 1:
					ivbtn01.setOnClickListener(new OnClickListener(){
						@Override
						public void onClick(View v)
						{
							iv01.setBackgroundResource(ani_arr2[rando1]);
							mAni1_2 = (AnimationDrawable) iv01.getBackground();
							mAni1_2.start();
							//i= getCount(i)+1;
							//count++;
						}});

					editor.putInt("counter", counter++);
					editor.commit(); // Very important

					mAni1.stop();
					break;
				case 2:
					ivbtn01.setOnClickListener(new OnClickListener(){
						@Override
						public void onClick(View v)
						{
							iv01.setBackgroundResource(ani_arr3[rando1]);
							mAni1_3 = (AnimationDrawable) iv01.getBackground();
							mAni1_3.start();
							//i= getCount(i)+1;
							//count++;
						}});
					editor.putInt("counter", counter++);
					editor.commit(); // Very important
					break;

				}
				if(counter>=3)
				{ ivbtn01.setSaveEnabled(false);
				PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).edit().clear().commit();}

			}});

(중간 부분만 올립니다. 너무 길면 읽다가 힘드실까봐..핳)

 

좋은 방법이 있을까욤....

문제는 1,2,3까지는 잘 되는데 또 한번 클릭했을때 다음 이미지들이 안 나옵니다.

익명사용자 님이 2014년 11월 19일 질문

1개의 답변

0 추천
흠 먼가 코드를 어떤 책이나 어떤 사이트에 긁어 오신것을 사용하시는 것인가요???

도움은 드리고 싶은데 먼가 코드가 디게 지저분해보이네요. 저만의 취향일수도;;

코드를 직접 받아서 테스트 해보면 금방 해결할 수 있을 거같은데

putzzang@naver.com로 보내주세요 만약 아직도 해결이 안되셨으면
익명사용자 님이 2014년 11월 20일 답변
...