ExoPlayer를 통해 작업을 하다보니 컨트롤러의 플레이버튼과 정지 버튼을 다른곳에서 확인해야하는 상황이 있었다. 하지만 여기서 setOnclickListener 를 사용하면 기존에 가지고 있는 play와 pause 버튼의 기능이 동작하지 않는다. 그래서 지금이 play 상태인지, pause 상태인지를 체크하기 위해 exo_play.getVisibility() 와 exo_pause.getVisibility() 를 사용하여 현재 플레이상태인지, 아닌지를 판단하였다. 그 후 작업을 하니 원래 exoplayer의 기능을 동작하면서, 현재 플레이 상태인지 아닌지를 체크할 수 있었다. 기존에는 onPlayerStateChanged 를 사용해 보려 하였으나, 정지와 플레이상태가 다른 상태값과 값이 똑같이 들어오기..
요즘에는 핸드폰 디자인이 하단에 하드웨어로 키를 만들어두지 않고, 디스플레이 하단에 소프트키를 만든다. 게임, 영상재생등이 필요할 때에는 소프트키를 숨길 필요가 있다. 아래의 코드는 그럴 때 필요한 코드이다. 사용법은 간단하다. 아래의 코드를 onCreate에 넣으면 된다. private View decorView; private intuiOption; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); decorView = getWindow().getDecorView(); uiOption = getWind..
아래의 코드를 사용하면된다. new Handler().postDelayed(new Runnable() { @Override public void run() { //내가 실행하고 싶은 코드 } },1000); ( 내가 미루고싶은 시간 단위 : millis) postDelayed를 사용하면 내가 설정한 시간 후에 run 내부의 코드를 실행시킨다. 이를 이용하면, 안드로이드 특성상 쓰레드가 많이 이용되기 때문에 실행 순서를 조정하기 힘들때가 있는데, 타이밍을 미룸으로써 먼저 실행되는것을 기다려 줄 수 있다. Handler의 역할은 안드로이드가 어떤것을 먼저 실행할지 순서를 정해주는곳이라고 보면된다. 안드로이드는 어떤 코드를 실행할 때 MainHandler의 큐에 실행할 작업을 쌓아가며 들어온 순서대로 제거하며..
리시버 안에 MainReceiver.java MediaPlayer = mediaPlayer; public MainReceiver(Context context,PushHandler pushHandler,PushPreference pushPreference) { } @SuppressLint("MissingPermission") @Override public void onReceive(Context context, Intent intent) { if(intent.getAction().equals("example") { Uri alert = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_RINGTONE); mediaPlayer = MediaPlayer.create(m..
아래의 명령어를 안드로이드 스튜디오 터미널에 입력하면 dpi와 해상도를 알 수 있다. * density (DPI) - adb shell wm density * resolution (해상도) - adb shell wm size Physical size: 1080x1920 라고 출력되는것이 핸드폰이 가지고있는 고유의 해상도 Override size: 1080x1500 라고 출력되는 것은 변경되어 덮어씌어진 해상도 변경은 - adb shell wm density 480(원하는 숫자) - adb shell wm size 1080*1920(원하는 숫자) 를 입력하므로써 변경할 수 있다. 초기화는 - adb shell wm density reset adb shell wm size reset 으로 다시 되돌릴 수 있..
https://codelabs.developers.google.com/codelabs/android-room-with-a-view/#0 Android Room with a View - Java Your Room database class must be abstract and extend RoomDatabase. Usually, you only need one instance of a Room database for the whole app. Let's make one now. Create a class file called WordRoomDatabase and add this code to it: In Android Studio, if you codelabs.developers.google.com 매우 ..
우선 double tap을 사용하기위해 GestureDetector 를 사용하였다. 사용법은 1단계 : GestureDetector 클래스를 내부 클래스로 받아온다. 나는 아래 코드를 사용하고자 하는 엑티비티 또는 프레그먼트 가장 아래, } 바로 전에 넣어두었다. private GestureDetector.SimpleOnGestureListener mOnSimpleOnGestureListener = new GestureDetector.SimpleOnGestureListener() { @Override public boolean onSingleTapUp(MotionEvent e) { Log.d("qqq", "event up: " + e.toString()); return true; } @Override p..