grid layout을 사용해야하는 일이 또 발생했다.이전에는 항목 여백을 item layout에서 줬었는데화면 해상도에 따라 이상하게 보이는 경우가 있어 decoration 작업을 이번에 진행하기로 했다. androidx.recyclerview.widget.GridLayoutManager RecyclerView에서 GridLayoutManager 속성을 주고이 RecyclerView의 크기를 아이템 갯수와 여백 포함한 width 값으로 설정.(center_horizontal 정렬로 가운데 위치)이 때에 리스트 아이템 layout에서 여백은 포함하지 않는다.이렇게 하여 리스트를 보면은 여백이 없이 붙어 보인다. 그리고 데코레이션에서 spanIndex에 따라 여백을 설정하면 보기좋게 여백을 추가 할 수 있..
설정 값을 변경 하면 앱을 재시작 해야하는 기능이 있어, 자동으로 재시작 하면 좋을것 같아 해당 기능을 찾아 이곳에 정리해요. private fun restartApplication(mContext: Context) { val packageManager: PackageManager = mContext.packageManager val intent = packageManager.getLaunchIntentForPackage(mContext.packageName) val componentName = intent!!.component val mainIntent = Intent.makeRestartActivityTask(componentName) mContext.startActivity(mainIntent) e..
빌드를 하다 보니 warning이 보이는데 성격상 그대로 두기 애매해서 변경해본다. The option setting 'android.defaults.buildfeatures.buildconfig=true' is deprecated. The current default is 'false'. It will be removed in version 9.0 of the Android Gradle plugin. You can resolve this warning in Android Studio via `Refactor` > `Migrate BuildConfig to Gradle Build Files` 그래서 기억을 더듬어 보니 BuildConfig 생성이 안되서 gradle properties에 추가했던게 기억이..
앱의 알림소리를 재생 요청이 들어와 갑자기 작업을 진행했네요. 사운드 재생은 Notification sound volume으로 재생하도록 설정 AudioManager audioManager = (AudioManager) getApplicationContext().getSystemService(Context.AUDIO_SERVICE); int streamVolume = audioManager.getStreamVolume(AudioManager.STREAM_NOTIFICATION); soundPool.setOnLoadCompleteListener((soundPool, sampleId, status) -> soundPool.play(sampleId, streamVolume, streamVolume, 0, 0,..
개발하고 있는 앱에서 sound 재생을 추가하였는데, 알림 허용을 off로 했을경우 sound 재생을 막기 위해 앱 알림 설정 값을 가져오는게 필요했어요. NotificationManagerCompat.from(this).areNotificationsEnabled() 알림 허용 여부에 따른 설정값을 확인 할 수 있음. https://developer.android.com/reference/android/app/NotificationManager#areNotificationsEnabled()
보호되어 있는 글입니다.
Activity를 코드에서 높이 조절이 필요한 경우가 생겼다. activity layout의 크기를 결정하는 layout에 id를 설정하고, 이 id에 layoutParams의 height 값을 변경하여 작업하였다. 아래에서는 push_web_view_layout의 높이가 activity의 실제 높이가 되어 이 값으로 높이를 조절하였다. push_web_view_layout의 layoutParams의 height 의 값을 원하는 px 값으로 변경하였다. 해상도 문제가 있어 px을 dp로 변환 후 height에 적용 하여 해상도에 영향이 없도록 변경. val heightPx = 450 val layoutParams: ViewGroup.LayoutParams = push_web_view_layout.layo..
안드로이드 웹뷰로 동영상 화면 확대 / 축소 기능이 있어 WebChromeClient를 상속받아 작업을 하였는데 동영상 전체화면에서 축소기능 선택을 해도 동영상 화면이 축소가 안되고 web에 fullscreenChange listener에 이벤트가 발생하지 않는 문제가 있었네요. 유튜브에서는 문제가 없는데 개발하고 있는 페이지에 문제가 있다고 생각했으나, 담당자 분께서 확인해 주셨는데 화면 하단의 navigation bar가 동영상 컨트롤 부분위에 위치해서 이벤트가 발생하지 않는것으로 확인해주셨습니다. 동영상 축소 안되는 문제는 navigation bar를 안보이게 처리하고 진행하기로 하였네요. @Override public void onShowCustomView(View view, CustomViewC..
매번 서버로 요청해서 데이타를 받거나 파일을 받아 저장만 했었는데, 이번에는 로컬의 파일을 서버로 보내는 일을 하게 되었네요. 기존 volley를 이용해 보냈는데 파일이 없다고 해서 왜 없나 한참을 고민하다, iOS에서 AlamoFire 라이브러리로 통신을 하는걸 보니 param 구조가 다르다는걸 알게 되었어요. 기존 VolleyFileUploadRequest class에 몇가지 추가를 해주면 된다. getBody()에 getByteData에 파일 정보를 가져오는 코드를 추가해준다. override fun getBody(): ByteArray { val byteArrayOutputStream = ByteArrayOutputStream() val dataOutputStream = DataOutputStre..
앱 개발 기간이 길어지다 보니 중간에 변경되는 부분이 많이 있네요. 파일경로 가져오는게 deprecate되고... 또 검색해서 작업을 진행하게 되었네요. 알고있는 정보는 파일이름. 파일을 복사하기 위해 외부저장경로의 파일경로. filename으로 외부저장경로에 저장되어있는 파일 uri를 가져오고, getUriToFileString() 함수로 파일 경로를 가져옵니다. val c: Cursor? = mContext.contentResolver.query(MediaStore.Downloads.EXTERNAL_CONTENT_URI, null, "${MediaStore.MediaColumns.DISPLAY_NAME}=?", arrayOf(filename), null) if (c == null) { showToas..
- Total
- Today
- Yesterday
- 웹뷰
- base64
- px -> dp
- app restart
- 안드로이드
- 알림소리끄기
- webview
- 난왜테스트가안될까
- 알림허용
- onShowCustomView
- VolleyFileUploadRequest
- height변경
- 작업은했는데
- nodejs
- px to dp
- #buildconofig
- 이미지파일공유
- 인앱 업데이트
- 음원파일재생
- areNotificationsEnabled
- Activity 크기 변경
- #gradle.properties
- 새로올린테스트앱이안보이네
- Kotlin
- FileDataPart
- Android
- 한글깨짐
- 이미지파일보기
- 알림소리묵음처리
- SWIFT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |