2010-05-13 1 views
7

버튼이 햅틱 피드백을 제공하려면 (즉, 휴대 전화가 매우 짧게 진동하므로 버튼을 실제로 밀 었다고 느낄 수 있습니다.) 표준 방법은 무엇인가요? 하기 위해서? 명시 적으로 onClick() 이벤트를 설정하고 진동이 울리는 시간 (밀리 초)을 제공하는 vibrate() 함수를 호출하거나 뷰에서 hapticFeedbackEnabled를 설정할 수 있습니다.Android : 햅틱 피드백 :보기에서 onClick() 이벤트와 hapticFeedbackEnabled

문서 후자는 긴 프레스 또는 가상 화면의 키 작동을 나타 내기 위해 보인다 맞아 경우 http://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)

, 그때 수동으로 버튼을 가상 화면의 키 또는를 만들기 위해 하나 필요 onClick() 이벤트를 설정하십시오.

무엇이 좋습니다?

또한 손가락이 버튼을 "놓을 때"와 반대로 사용자의 손가락이 버튼을 만졌을 때 진동이 즉시 발생하도록하려면 어떻게해야합니까?

관련 질문 : How to enable haptic feedback on button view

답변

0

나는 진동을 호출하면()를 수동으로 좋은 생각이 아니라고 생각합니다. 햅틱 피드백을 원하지 않는 사람은 휴대 전화가 진동하는 것을 의미합니다. 또한 비 진동 제품에 어떻게 반응하는지 잘 모릅니다. setHapticFeedbackEnabled가 확실히 좋은 방법입니다. 그 방법은이 특별한 목적을 위해 만들어졌습니다.

+0

감사합니다. 에드워드의 대답에 대한 내 의견을 확인하십시오. – dreeves

+0

setHapticFeedbackEnabled (true)를 사용하면 아무 것도 발생하지 않습니다. 장치에서 햅틱 피드백을 사용하도록 보장 할 수는 없습니다. –

3

계산기 앱에서 vibrate()를 사용하지만 시스템을 작성했을 때 햅틱 피드백 옵션이 없기 때문에 그랬습니다. 나는 그 접근법을 여러 가지 이유로 추천하지 않는다. 특히, 모든 전화기는 서로 다른 특성 (질량, 바이브레이터 모터, 모터 위치 등)을 가지므로 한 전화기에서 "느낀"것이 다른 것에서는 맞지 않습니다.

하지만 개별 휴대 전화 제조업체가 특정 제품에 대해 최소한 "튜닝"을했다고 가정하면 내장 된 햅틱 피드백이 전반적으로 옳은 느낌을 가질 수 있습니다.

또한 앞서 지적한 것처럼 햅틱 피드백을 구현하는 경우 환경 설정에서 자신의 설정을 구현해야합니다. 사용자가 시스템 전반에 걸쳐 설정하도록하는 것이 훨씬 좋습니다.

시간 허용 (hah!) 나는 vibrate() 사용에서 시스템의 내장 햅틱 피드백 사용으로 전환 할 계획입니다.

+0

에드워드 감사합니다. 나는 이것이 실제로 어떻게 행해지는지 여전히 불분명하다. 예를 들어, 버튼을 "가상 온 스크린 키"로 만드는 방법과 이것이 정상적인 (오랫동안 누르지 않은) 버튼 프레스에서 햅틱 피드백을 얻는 유일한 방법이라고 생각합니까? – dreeves

+2

내 소스 코드를 보면 나는 아무것도 영리하지 못했다. 모든 버튼은 같은 함수로 다시 호출됩니다.이 함수는 으로 시작합니다 (keyclick && vibrator! = null) vibrator.vibrate (KEYCLICK_TIME); 여기서 "vibrator"는 다음에서 가져 왔습니다. vibrator = (바이브레이터) getSystemService (Context.VIBRATOR_SERVICE); 아, 나는 당신이 무엇을 얻고 있는지 보았습니다. 이것을 Button 위젯에서 사용하기를 원하고, 문서는 가상 키보드에만 해당된다는 것을 의미합니다. 죄송합니다. 실험하지 않았습니다. –

1

지금까지 유일한 해결책은 버튼 OnClickListener에 performHapticFeedback을 호출하는 것이 었습니다. 이것은 작동하지만 해킹 비트처럼 보입니다.

4

Android Cookbook - Chapter Haptic Feedback

추상의 더 자세한 설명이있다 : 여러 단계가 필요가있다 :

  • 버튼/뷰
  • 레지스터기로 위해 촉각 피드백을 사용 매니페스트
  • 진동을 사용 버튼 용 온 터치 리스너
  • 터치시 performHapticFeedback()으로 전화
소비와 onClickHandler 부여하지 그냥하여 onTouchHandler false를 반환해야합니다, 햅틱 피드백을위한 onTouchLister과 행동의 onClickHandler 모두를 가질 수

이 그렇지 않으면 이벤트가 표시됩니다 .

관련 문제