본문 바로가기

Android7

[Android] Customizing Spinner arrow icon [잊어버릴까봐 기록] Android Application 개발 과정에서 Spinner의 화살표 아이콘을 바꿔야 했다. 우선, layout에 Spinner를 등록한다. 해당 Spinner의 background를 customizing한 xml 파일을 등록한다. 또한, Spinner에서 arrow icon을 클릭해서 펼쳐졌을 때, 해당 형태를 그대로 유지하기 위해 popupBackground에도 customizing한 xml 파일을 등록한다. 다음은 customizing한 convert_spinner_arrow.xml 파일이다. preview로 확인해보면 아래와 같은 결과를 확인할 수 있다. @drawable/ic_baseline_keyboard_arrow_down_24는 drawable 폴더에서 오른쪽 마우.. 2020. 10. 15.
[Android] Java ArrayList<DataModel> Sorting [나중에 쓰려고 기록] Android Application 구현 과정에서 DB로 받아온 Model을 특정 조건에 맞게 정렬하는 것을 구현해야 했다. (예를 들어, 최신 순, 인기 순, 댓글 많은 순 등) 따라서 Java ArrayList를 정렬하는 여러 링크를 참조하여 다음과 같은 class를 구현했다. 해당 프로젝트의 경우 정렬을 내림차순으로 해야했기에 return 값에 -1을 곱하여 정렬 결과의 reverse한 효과를 주었다. 오름차순으로 정렬해야 할 경우 -1을 지우면 된다. 최신 순은 String 타입의 날짜를 받아서 정렬해야했기에 compareTo() 함수를 사용했다. SortArraylist.java public class SortArraylist implements Comparator{ //.. 2020. 10. 15.
[Android] Java Convert Date [나중에 쓰려고 기록] Android Application 구현 과정에서 DB에서 날짜를 받아오면, 이를 오늘 이 시간으로부터 '~전'으로 표현해야 했다. (예를 들어, ~분 전, ~시간 전, ~달 전 등) 대부분 검색 결과가 오늘로부터 ~일 전의 날짜를 알고싶을 때의 경우들이었다. 따라서 Java 날짜 계산하는 여러 링크를 참조하여 다음과 같은 클래스를 구현하였다. ConvertDate.java public class ConvertDate { private SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); public String convertDate(String prevStrDate){ long diffInSeconds;.. 2020. 10. 15.
[Android] TabLayout textsize & Icon 색상 & Indicator 변경 방법 [잊어버릴까봐 기록] 1. TabLayout에 표현되는 Text Size를 조절하는 방법 아래 코드와 같이 style을 새로 생성한 후, tabLayout이 있는 xml파일에 적용한다. values/styles.xml tabLayout app:tabTextAppearance="@style/tab_text" 2. TabLayout 임의의 Tab 선택 시 text 색상 변경 방법 default 색상은 tabTextColor로 설정하며, 선택 시 색상을 변경하기 위해서 tabSelectedtextColor에 색상을 설정한다. app:tabTextColor="@color/colorUnselect" app:tabSelectedTextColor="@color/colorSelect" 3. TabLayout Icon .. 2020. 9. 15.
[Android] 내장 메모리 파일 가져오기 (2) 안드로이드 디바이스의 내장 메모리에 있는 파일을 가져오는 방법 두 번째를 소개한다. -> 안드로이드가 제공하는 MediaStore 이용하기 + Picasso Library Picasso Library를 사용하기 위해 app/build.gradle 파일에 dependency를 추가한다. app/build.gradle implementation 'com.squareup.picasso:picasso:2.5.2' 다음으로 내장 메모리를 접근하기 위해서 메모리 읽기, 쓰기 권한 코드를 삽입한다. AndroidManifest.xml 내장 메모리에 있는 이미지 파일을 예로 들어서, 이미지 파일을 가져오기 위한 cardview와 recyclerview를 미리 정의하고 recyclerview에 cardview를 올려 동.. 2020. 8. 10.
[Android] TabViewPager 실행 오류 해결 [삽질의 기록] Android로 개발하다보면, TabLayout을 사용하여 UI를 구현해야하는 경우가 발생한다. 약 1년 전 개발한 프로젝트에서 Fragment 안에 TabLayout과 TabViewPager를 배치하여 구현해야하는 일이 생겼다. 이 때 TabViewPager에서 임의의 탭을 클릭했을 때, 지정한 Fragment가 나타나는데, 이를 TabViewPagerAdapter.java 파일의 getItem(int position) 이라는 함수를 override하여 이를 구현할 수 있다. [TabViewPagerAdapter.java] @Override public Fragment getItem(int position) { switch (position) { case 0: recentFragment.. 2020. 8. 6.
[Android] 내장 메모리 파일 가져오기 (1) 안드로이드 디바이스의 내장 메모리에 있는 파일을 가져오는 방법 첫번째를 소개한다. -> 직접 접근하여 가져오기. 우선, 내장 메모리를 접근하기 위해서 메모리 읽기, 쓰기 권한 코드를 삽입한다. AndroidManifest.xml 메모리 읽기, 쓰기 권한은 위험으로 간주하는 권한이기 때문에, 사용자가 명시적으로 앱 액세스 권한을 부여해야 한다. 런타임에 사용자에게 해당 권한을 요청하기 위한 메시지를 표시해야하는 코드를 작성한다. LoadingActivity.java public class LoadActivity extends Activity { private int permissioncheck = 1; private String[] permissionArr = { Manifest.permission.REA.. 2020. 5. 3.