티스토리 툴바


Android/Etc.2010/12/17 15:15

참고 : http://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html

안드로이드는 animated GIF를 지원하지 않는다.

여러장의 PNG 이미지를 순차적으로 보여주는 형태로 Animation을 구성하여

animated GIF와 비슷한 효과를 줄 수가 있다.

public class Test extends Activity {
	private ImageView mLogoImageView;
	private AnimationDrawable logoAnimation;

	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.logo);

		mLogoImageView = (ImageView)findViewById(R.id.LogoImageView);
		mLogoImageView.setBackgroundResource(R.anim.logo_ani);
		
		logoAnimation = (AnimationDrawable) mLogoImageView.getBackground();

		new Handler().postDelayed(new Runnable() {
			public void run() {
				logoAnimation.start();
			}
		}, 100);
	}
}

딜레이를 주지 않고 start()를 할 경우 AnimationDrawable이 정상적으로 동작하지 않는다.
Activity에 GUI가 그려지고 이미지를 로드 하는데 시간이 걸리기 때문이다.

res/anim 폴더에 animation에 사용할 XML을 생성한다.

	
	
	
	


android:oneshot으로 반복 여부를 설정

사용할 PNG 파일은 drawable에 리소스 등록 되어 있어야 하며 android:drawable="PNG리소스ID"

android:duration="시간(ms)"로 한 프레임을 구성한다.
저작자 표시 비영리 변경 금지

'Android > Etc.' 카테고리의 다른 글

animated GIF를 대체 AnimationDrawable(FrameAnimation)  (0) 2010/12/17
ProgressDialog를 이용한 Loading 구성  (0) 2010/12/17
App 종료  (0) 2010/11/25
SDCARD의 경로 가져오기  (0) 2010/11/25
앱에서 다른 앱을 실행  (0) 2010/11/25
Activity Lifecycle  (0) 2010/07/13
Posted by 회색꿈
Android/Etc.2010/12/17 14:06
네트워크로부터 데이터를 받아오거나 데이터베이스로부터 대용량의 정보를 받아올때

기다려달라는 메시지가 팝업으로 출력되고 완료시 사라지는것을 본적이 있을것이다.

ProgressDialog와 Thread, Handler를 사용하여 구성한다.

public class Test extends Activity {
    // Called when the activity is first created.
	private ProgressDialog mProgressDialog;
	private final int PROGRESS_DIALOG_COMPLET = 0;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
		mProgressDialog = ProgressDialog.show(Test.this, "title",
				"content", false); // title에는 Dialog의 제목을 content에는 내용을 입력
		
		Thread thread = new Thread(new Runnable(){
			public void run(){
				//ProgressDialog가 돌아가는동안 thread로 작업할 내용 입력

				mHandler.sendEmptyMessage(PROGRESS_DIALOG_COMPLET );
				//thread 작업이 완료 되면 mHandler에 0값 전달
			}
		});
		thread.start();
    }
    
	private Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {
			switch (msg.what) {
			case PROGRESS_DIALOG_COMPLET :
				mProgressDialog.dismiss(); // ProgressDialog 종료
				// ProgressDialog가 종료되고 작업할 내용 입력

				break;
			default:
				break;
			}
		}
	};

저작자 표시 비영리 변경 금지

'Android > Etc.' 카테고리의 다른 글

animated GIF를 대체 AnimationDrawable(FrameAnimation)  (0) 2010/12/17
ProgressDialog를 이용한 Loading 구성  (0) 2010/12/17
App 종료  (0) 2010/11/25
SDCARD의 경로 가져오기  (0) 2010/11/25
앱에서 다른 앱을 실행  (0) 2010/11/25
Activity Lifecycle  (0) 2010/07/13
Posted by 회색꿈
Android/Etc.2010/11/25 13:30
참고 : http://developer.android.com/reference/android/app/ActivityManager.html#restartPackage(java.lang.String)

Activity Stack에 쌓여있는 Activity 및 실행중인 Activity를 종료 시키고 App을 종료 한다.
ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.restartPackage(getPackageName());
권한을 필요로 하니 아래 permission을 manifest에 추가하도록 하자


저작자 표시 비영리 변경 금지

'Android > Etc.' 카테고리의 다른 글

animated GIF를 대체 AnimationDrawable(FrameAnimation)  (0) 2010/12/17
ProgressDialog를 이용한 Loading 구성  (0) 2010/12/17
App 종료  (0) 2010/11/25
SDCARD의 경로 가져오기  (0) 2010/11/25
앱에서 다른 앱을 실행  (0) 2010/11/25
Activity Lifecycle  (0) 2010/07/13
Posted by 회색꿈