안드로이드 텍스트뷰 텍스트에 속성주기 안드로이드에서 TextView에 setText시 text에 부분적으로 밑줄을 긋거나 색상을 바꾸거나 이미지를 중간에 삽입하거나 등이 필요 시 Html을 이용하여 사용 가능하지만 SpannableString 클래스로도 사용 가능하다. SpannableString spannableString = new SpannableString(text);spannableString.setSpan(new ForegroundColorSpan(color), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);spannableString.setSpan(new UnderlineSpan(), targetStartIndex, targetEndI..
# android textview html (underline, color) 부분스타일 바꾸기 안드로이드 개발을 하다보면 textview에 setText해줄 때 특정문장만 색상을 변경하거나 밑줄표시를 해줘야 할 때가 있다. android에서 html클래스를 지원해주기 때문에 html문법을 이용하면 된다.String text = "안녕하세요"; textView.setText(Html.fromHtml("" + text + ""));underLine textView.setText(Html.fromHtml("" + text + " "));color textView.setText(Html.fromHtml("테스트 " + "파란색" + "입니다 "));underLine + color
# android studio logcat color 안드로이드 스튜디오에서 로그색상이 눈에 띄지 않거나 로그 타입끼리 구분해주기 위해서 색상변경이 필요 할 때가 있다. 방법은 간단하다. 스튜디오에서 preferences창을 열어(맥에서 command + , ) logcat을 검색하면 위와같이 나온다.우측에 Use inherited attributes 체크해제 한 뒤,Foreground의 색상을 클릭해서 원하는 색상으로 변경한다. Background의 색상도 변경가능하다. 변경 뒤 Apply를 눌러 저장하면 끝.
[펌] Ctrl + Space : 기본 코드 완성Ctrl + Shift + Space : 스마트 코드 완성(예상되는 타입의 메소드또는 변수명 )Ctrl + Q : 빠른 문서보기Shift + F1 : 외부 문서보기(http://developer.android.com/reference로 이동)Ctrl + mouse over code : 간단한 설명.Alt + Insert : Generate code( Getters, Setters, Constructors, hashCode/equals, toString )Ctrl + O : Override methodsCtrl + I : Implement methodsCtrl + Alt + T : Surround with… (if..else, try..catch, for, ..
viewpager와 fragment를 사용하다보면 fragment를 가져와야하는 상황이 생기기 때문에 ((MyFragment)fragmentManager.getFragments().get(index)).이런 식으로 사용해왔으나. 가끔 casting에러가 발생하는것을 보고 fragment manager의 스택(index)이 가변적이라는 사실을 알게되었다. 오류가 발생 할 수도 있다는 말이다. 해결하기 위해 for(Fragment fragment : fragmentManager.getFragments()){ if(fragment instanceof MyFragment){ // } } 이런식으로 사용했으나.. 뭔가 굉장히 지저분하고 불필요한 반복문은 좋아하지 않기 때문에 다른방법을 찾았다. fragmentMa..
안드로이드 이미지로드 library인 Glide를 사용하다보면 java.lang.RuntimeException: java.lang.IllegalArgumentException: You cannot start a load for a destroyed activity라는 에러친구를 만날 수 있다. Glide.with(MainActivity.this)Glide는 이와같이 이미지로드시 파라미터로 Activity를 받게 되어있는데 비동기방식으로 이미지로드 함수가 실행되고 액티비티가 바로 종료되면 파라미터로 넘겨준 Activity가 이미 destory된 상태이기때문에 발생하는 에러이다 해결방법은 이렇다. Activity activity = MainActivity.this; if (activity.isFinishin..
android activity data sharing intent Activity간 데이터를 전달(공유)하려면 intent를 사용해야 한다. # 다음 Activity로 데이터를 전달 할 때 현재 Activity(A)에서 새로운 Activity(B)를 실행시킬 때 intent에 data를 put해서 새로운 Activity(B)로 전달하고 새로운 Activity(B)에서 데이터를 받는다.Intent intent = new Intent(AlphaActivity.this, BravoActivity.class); intent.putExtra("key","value"); startActivity(intent);[A Activity에서 intent에 key, value형식으로 데이터를 저장하고 B Activity로 ..
안드로이드를 처음 시작하는 분들은 대부분 이클립스에서 넘어왔을거라 생각한다.개인적으로 스튜디오에서 유용하게 쓰는 단축키를 정리해보려 한다.맥os기준 입니당.키 변경이나 기타 단축키는 preferences > KeyMap 에서 변경/확인 가능합니당. # control + 엔터키(return): generate단축키 원하는 줄에서 단축키를 입력하면 generate항목의 친구들이 등장한다.생성자(constructor) 부터 getter,setter 등을 자동으로 만들어주는 아주 편리한 단축키다.예를 들어 요런식으로 생성자의 파라미터로 받고 싶은 지역변수를 체크해주면 타란~~ 깔끔하게 만들어준다. # command + option(alt) + L: 코드정렬 단축키 아주 극단적으로 코드를 더렵혀봤다. 혐오스럽다...
out of memory exceptionGlide library 사용 시 이미지 캐시로 인한 메모리부족 현상이다.우선 어플리케이션 메모리heap을 늘려준다, Manifest에 android:largeHeap="true" 자신의 BaseApplication 클래스에 public class BaseApplication extends Application {@Override public void onLowMemory() { super.onLowMemory(); Glide.get(this).clearMemory(); } @Override public void onTrimMemory(int level) { super.onTrimMemory(level); Glide.get(this).trimMemory(level..