본문 바로가기

Mobile

(29)
[ Android ] 배경색 그라데이션 효과 퍼블리싱을 하다보면 그라데이션 효과를 주고싶은 경우가 생긴다. 파일을 생성하여 적용만 하면 되기때문에 간단하다. 아래와 같이 xml파일을 생성한다. bg_gradient.xml - shape: 모양. shape="oval" 가능 - angle: 회전 각도 나타냄. 0, 90, 180, 270 가능 - startColor: 시작 컬러 - centerColor: 가운데 컬러 - endColor: 끝 컬러 적용하고 싶은 곳에 배경색으로 적용하면 된다. android:background="@drawable/gradient"​ 보통 centerColor는 잘 사용하지 않는다. startColor와 endColor만 적용해도 자연스러운 그라데이션이 그려진다.
[ Android ] Cannot call this method in a scroll callback W/RecyclerView: Cannot call this method in a scroll callback. 리싸이클러뷰를 사용하다보면 다음과 같은 메세지를 발견할 수 있다. 스크롤을 할 때마다 뜨는데, 앱이 죽지는 않는다. 하지만 다음과 같은 메세지는 왜뜰까? Cannot call this method in a scroll callback. Scroll callbacks mightbe run during a measure & layout pass where you cannot change theRecyclerView data. Any method call that might change the structureof the RecyclerView or the adapter contents should ..
[ Android ] 소프트스퀘어드를 마치며 소프트스퀘어드( softsquared ) 는 외주연계 프로그래밍 교육과정을 진행하는 곳이다. 아는 지인을 통해 알게돼서 신청을 하게되었다. 내가 선택한 분야는 안드로이드였다. 눈에 띄는 혜택이 2개가 있었는데, 하나는 바로 알 수 있듯이 '외주연계' 를 통해 돈을 벌 수 있다는 것이었다. 그리고 또 하나는 '메이커스(MAKE US)' 라는 앱런칭 동아리 서류 면접 통과이다. 앱을 배우고 싶고 제대로 해보고 싶다는 마음이 컸지만 이런 혜택에 솔깃한 것도 사실이다. 그래서 나는 망설임없이 해보기로 했다. 내돈주고 처음 학원(?)을 다녀봤다. 사실 나는 직장인이다. 심지어 분야는 웹이다. 딱히 내가 웹을 하고 싶어서 하게 됐다기 보다는 어쩌다보니 웹팀으로 들어오게 되어 하고 있다고 보는 게 맞겠다. 어떻게 보..
[ Android ] android java.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.loadDescriptors() android studio 를 최신 4.1 버전으로 업데이트 하기 위해서 앱을 삭제하고 설치한 후에 앱을 실행하는데 다음과 같은 에러가 발생했다. 해결법을 찾아보니 간단하였다. C:\Users\{user}\.AndroidStudio4.0\config\plugins 경로로 이동해서 plugins 안에 있는 것을 삭제해주면 된다. 다시 실행하면 정상적으로 실행되는 것을 볼 수 있다.
[ Android ] RecyclerView 와 ListView 차이 | ViewHolder 패턴 의무화 ListView는 뷰홀더 패턴을 권장했지만, 강제성은 없다. 반면, RecyclerView는 무조건 뷰홀더 패턴을 사용해야한다. 그래서 ListView와 달리 RecyclerView는 다음과 같은 메서드를 Adapter에서 사용한다. onCreateViewHolder(ViewGroup parent,int viewType) onBindViewHolder(ListItemViewHolder holder,int position) | onCreateViewHolder 뷰 홀더를 생성하고 뷰를 붙여주는 부분. 처음에 화면에 보이는 뷰에 대해 뷰 홀더가 생성되며, 이후 스크롤 시 보여지는 뷰들은 재활용되는 뷰이므로 다시 호출되지 않는다. | onBindViewHolder 화면에 뷰..
[ Android ] 안드로이드 생명주기 (Life Cycle) 앱을 만들 때 생명주기를 적절하게 사용하는 것은 매우 중요하다. 앱이 멈추거나, 불가피하게 종료가 되거나, 다시 시작되거나 하는 등의 상황에 대해서 적절하게 처리할 수 있기 때문이다. 액티비티의 대표적인 상태 정보는 다음과 같다. 상태 설명 실행(Running) 화면상에 액티비티가 보이면서 실행되어 있는 상태. 액티비티 스택의 최상위에 있으며 포커스를 가지고 있음 일시 정지(Paused) 사용자에게 보이지만 다른 액티비티가 위에 있어 포커스를 받지 못하는 상태. 대화상자가 위에 있어 일부가 가려진 경우 해당함 중지(Stopped) 다른 액티비티에 의해 완전히 가려져 보이지 않는 상태. 이렇게 액티비티의 상태 정보가 변화하는 것을 액티비티의 생명주기(Life Cycle) 또는 수명주기라고 하며, 액티비티의..
[ Android ] Manifest 매니패스트 안드로이드 프로젝트를 만들 때 기본적으로 생성되는 파일 중 하나가 매니패스트 파일이다. 매니패스트는 앱이 실행되기 위한 일종의 룰, 규칙 같은 것을 설정하는 파일이라고 생각하면 된다. | 개요 매니패스트 파일에는 다음과 같은 정보를 선언해야 한다. 1. 앱의 패키지 이름 2. 앱의 구성 요소(모든 액티비티, 서비스, Broadcast Receiver, 콘텐츠 제공자 포함) 3. 앱이 시스템 또는 다른 앱의 보호된 부분에 액세스하기 위해 필요한 권한 4. 앱에 필요한 하드웨어 및 소프트웨어 기능 | 선언 안드로이드 프로젝트를 처음 생성했을 때 매니패스트 파일에는 다음과 같이 선언되어 있다. 첫 번째 줄은 해당 파일은 xml 파일이고, 인코딩 방식은 utf-8임을 나타낸다. 다음으로 는 애플리케이션의 전반적..
[ Android ] 다이얼로그 띄우기 다이얼로그는 알림 대화상자를 말한다. 사용자에게 확인을 받거나 선택하게 할 때 사용한다. 주로, 메세지를 전달하는 역할을 하며 예/아니오와 같은 응답을 처리한다. | 다이얼로그 띄우기 AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("알림"); builder.setMessage("종료하시겠습니까?"); builder.setIcon(android.R.drawable.ic_dialog_alert); build.setPositiveButton("예", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) ..

반응형