반응형

안드로이드 어플을 개발하다보면 진동효과를 사용하고 싶을때가 있다.


기본적으로 모바일기기이다 보니 사운드효과보다는 손으로 잡고잇기에 진동효과가 더 감지하는 데에는 좋다.


이미 안드로이드에서는 그 방법에 대한 클래스가 만들어져있으므로 우리는 객체를 만들고 사용하기만 하면 된다.


Vibrator라는 클래스로부터 객체를 만들어서 거기에 맞는 사용법에 따라 사용하면된다.

사용법은 간단하다.!!!


아래처럼 진동값

Vibrator vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);   

vibe.vibrate(값);                                                   //( 값 / 1000)초 동안 진동이 울린다.     

//vibe.vibrate(패턴, 0)                                          //패턴(진동,무진동)에 맞게 설정가능


기본적인 소스사용법은 이렇지만 빼먹으면 안돼는 설정이 있는데

AndroidManifest.xml에서 permission권한을 주어야한다.

<uses-permission android:name="android.permission.VIBRATE"></uses-permission>


이렇게 설정이 완료되면 어플에서도 개발하여 사용할 수 있다.


반응형
블로그 이미지

Mr.비타민

,
반응형

Thread를 이용하여 타이머를 만드는 방법중인 하나인 (마지막시간-시작한시간)을 계산하여 출력하는 방법을 사용해보려고한다.

 

Thread t = new Thread(new Runnable() {
	public void run() {
         //첫 시작한 현재시간
		final long start = System.currentTimeMillis();
         //시간포맷팅을 위한 포맷설정
		final SimpleDateFormat sdf = new SimpleDateFormat("mm:ss:SSS");
		
		while (!(t.isInterrupted())) {
			runOnUiThread(new Runnable() {
				public void run() {
                    //쓰레드가 돌때마다 계속 현재시간 갱신
					long end = System.currentTimeMillis();
                    //진행된시간을 계산하여 포맷에 맞게 TextView에 뿌리기
					dc.setText(sdf.format(end - start).substring(0, 8));
				}
			});
            //0.01초마다 Thread돌리기
			SystemClock.sleep(10);
		}
	}
});
t.start();
 이렇게 하게되면 00:00:00 의 형식으로 뷰에 뿌릴수가 있다
반응형
블로그 이미지

Mr.비타민

,
반응형

흔히 Java를 사용하다가 안드로이드로 넘어오게되면 Thread.stop(), Thread.destroy가 안먹히게 된다.

 

그래서 안드로이드에서는 interrupt()를 사용하게 되는데 이것마저 적용이 안될때가 있다.

 

그럴때는 Thread의 isInterrupt()를 while의 조건으로 넣어주면 interrupt()메소드를 실행했을때 멈추게 할수 있다.

 

Thread t = new Thread(new Runnable() {
	public void run() {
		while (!(t.isInterrupted())) {//Interrupt메소드가 호출되면 중지
			runOnUiThread(new Runnable() {
				public void run() {
					//Thread로 UI를 변경하고자한다면 
				}
			});
			SystemClock.sleep(10);
		}
	}
});
사용하고자하는 곳에서 Interrupt()를 호출하게 된다면 중지되게 된다.
반응형
블로그 이미지

Mr.비타민

,