getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 화면 터치 막기 getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE); 화면 터치 막은거 풀기. 이 두가지를 적절히 분배하여 자신이 원하는 동작을 만들 수 있습니다. 만약 fragment 내에서 사용하고 싶다면 바로 getWindow()를 호출하지말고 getActiviry().getWindow() 로 호출하면 됩니다. 레이아웃 또는 뷰에서 사용할 수 있는 setClickable(false) 이것도 찾았었지만, 제 코드에서는 작동이 되지 않아 위에 소개한 코드로 해결하였습니다.
안드로이드에서는 배터리 상태에 대한 값을 계속해서 불러오는것을 권장하지 않는다. 이러한 행동 자체가 배터리 소모가 크기 때문이다. 그래서 배터리가 낮아졌을때 (보통 20%이하) 그보다 높을때로 구분하여 동작하기를 권장한다. 그렇다면 어떻게하면 배터리가 낮을때와 보통이 되었을 때를 알 수 있을까? 이는 안드로이드 Developer에 자세히 나와있지만, 사용법에 대해서 햇갈릴 수 있으니 내가 사용한 방법을 올려보겠다. 나는 receiver로 등록하여, 배터리의 변경 상태가 들어오면 그때에 receiver에서 내가 원하는 동작하도록 설계하였다. 전 게시글인 통화 상태 확인하는 broadcast와 동일한 곳에서 작동하게 만들었다. 2020/03/18 - [인턴/안드로이드] - 안드로이드 전화 받기, 전화 끊기,..
(BroadcastReceiver)브로드 캐스트 리시버는 메니페스트에 한번 등록해놓으면, 앱이 실행되는 동안, 브로드 캐스트가 들어올 때 한번씩 실행해준다. 우선 1단계 manifests 에 Callrecevier를 등록해준다. 여기서 android.intent.action.BATTERY_LOW는 배터리가 없을 때의 상태도 받기위해 추가하였다. 전화만 사용할거면 없어도 된다. 2단계 CallReceiver.java 를 만든다. import android.annotation.SuppressLint; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import andro..
안드로이드를 사용하다가 벨소리, 미디어가 아닌 알람 등을 조절하고 싶은 경우가 생긴다. 그럴경우에는 AudioManager 를 사용하여 조절할 수 있다. 아래에 있는 함수를 Activity 클래스 안에 추가해주면 벨소리에 대한 볼륨을 조절할 수 있다. 아래는 볼륨 조절 키를 통해 볼륨을 조절해주는 함수이다. public boolean onKeyDown(int keyCode, KeyEvent event) { AudioManager mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE); switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP : mAudioManager.adjustStreamVolume(AudioMa..
exo player를 음악재생용으로 사용하게 되면, 원래 동영상이 재생되는 부분은 사용하지 않는다. 하지만 나는 그 부분에 앨범 이미지가 보이게 하고 싶었다. 이 부분을 수정하려면 어떻게 해야할까? 우선 가장 기본적인 방법으로는 exo player 라이브러리에서 제공해주는 함수가 있다. exoPlayerView.setDefaultArtwork(image); 를 사용하면된다. image 부분에는 Bitmap 형식의 이미지가 들어가도 되고, Drawable 형식의 이미지가 들어가도 된다. 하지만 나는 서버에서 링크를 받아와 이미지를 삽입하기 때문에, Glide를 사용하고 싶었다. Glide를 사용하지 않고 bitmap으로 받아와서 바로 사용하게 되면, 사용 메모리 용량이 커서 앱이 팅길 수도 있다. 이를 해..
jpg와 png는 이미지 포맷의 차이이다. 하지만 안드로이드 개발자에게 있어서 가장 큰 차이는 jpg는 사진 배경을 투명화 시켜도 안드로이드에서 투명으로 인식하지 못한다. 그렇다면 우리가 안드로이드에서 투명화된 이미지파일을 불러오고 싶을 땐 어떻게해야할까? 배경을 투명화 시킨 png 사진을 가져오면 된다. 안드로이드에서 jpg는 투명배경을 인식하지 못하지만, png의 투명 배경은 인식할 수 있다. 그래서 안드로이드에서는 대부분 png 파일을 사용하는 것이다.
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 를 코드에 추가해주면 된다. 아래와 같이 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_splash); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
엑티비티의 경우 manifests에 등록을 해주어야 작동한다. 이 경우에 manifests에서 기본 제목 ( 액션바 ) 를 없앨 수 있는데 android:theme="@style/Theme.AppCompat.NoActionBar"> 를 추가해 주면 해당하는 엑티비티의 액션바가 사라진다. 아래는 초기화면의 액션바를 없애는 작업이다. (초기화면의 acticity 이름을 Splash로 지정) 2020/03/12 - [인턴/안드로이드] - 안드로이드 초기화면 만들기 (Splash 이미지) activity android:name=".Splash" android:theme="@style/Theme.AppCompat.NoActionBar"> 두번째 방법으로는 코드상에서 적용 할 수 있는 방법이다. 코드상에서 onCr..