300x250
Button 누르는 동안 동작
rc카 방향키를 구성하는 과정에서 누르는 동안 동작을 전송하기 누르는 동안에 동작할 수 있는 리스너를 찾고 있었습니다.
그러던 중 좋은 코드를 발견하였습니다.
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
android:gravity
=
"center"
android:orientation
=
"vertical"
>
<
Button
android:id
=
"@+id/btn1"
android:layout_width
=
"wrap_content"
android:layout_height
=
"wrap_content"
android:text
=
"버튼"
/>
</
LinearLayout
>
package com.example.dmbtv.buttontest;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.annotation.Nullable;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
public class MainActivity extends Activity {
private Button _btn1;
private boolean _isBtnDown;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
_btn1 = (Button)findViewById(R.id.btn1);
_btn1.setOnTouchListener(onBtnTouchListener);
}
private void onBtnDown()
{
TouchThread kThread = new TouchThread();
kThread.start();
}
private Handler touchHandler = new Handler()
{
public void handleMessage(Message msg)
{
Log.d("MainActivity", "click");
}
};
private class TouchThread extends Thread
{
@Override
public void run() {
super.run();
while(_isBtnDown)
{
touchHandler.sendEmptyMessage(9876);
try{
Thread.sleep(200);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
private View.OnTouchListener onBtnTouchListener = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()){
case MotionEvent.ACTION_DOWN:
_isBtnDown = true;
onBtnDown();
break;
case MotionEvent.ACTION_UP:
_isBtnDown = false;
break;
default:
break;
}
return false;
}
};
}
출처: http://susemi99.tistory.com/1184 [쎄미 - 우물쭈물하다가 내 이럴 줄 알았지]
* 스레드를 이용하여 버튼을 클릭하는 동안 0.2초 마다 로그를 출력하게 코딩 되어 있습니다.
* 이런 방식을 변경하여 방향키에 적용할 수 있습니다.
반응형
'Android' 카테고리의 다른 글
안드로이드 Database Insert (0) | 2017.06.02 |
---|---|
안드로이드 - intent 활용(명시적 인텐트) (0) | 2017.04.28 |
HttpURLConnection.HTTP_OK, 302 주의점 (0) | 2017.03.02 |
안드로이드 ConnectivityManager, NetworkInfo (0) | 2017.03.01 |
안드로이드 - FragmentAdapter 차이 (0) | 2017.02.28 |