본문 바로가기

안드로이드

Configuration with name 'default' not found 더보기
FTP 이용 업로드. 텍스트파일 한글깨짐 현상, 파일질라 같은 프로그램으로 웹호스팅서버에 텍스트 파일을 올렸다고 하자. 이걸 웹화면에서 보면 제대로 한글이 나온다. 위의 그림을 보면 알겠지만 메모장의 내용과 웹페에지에서 보여지는 화면이 같음을 알 수 있다. 근데 JSON을 이용하고 URL을 이용해서 안드로이드 코딩을 하고 위의 웹페이지를 안드로이드에서 불러오면위와 같이 한글이 깨져나온다. 텍스트파일 인코딩을 UFT-8로 바꾼다.위의 그림과 같이 인코딩을 바꾼다고 끝이 아니다. 파일질라를 통해 다시 업로드 해야한다. 아래와 같이 파일질라에서 다시 웹호스팅서버로 파일을 업로드 한다. 덮어쓰기하자. 파일질라를 통해 업로드 한 후에 다시 안드로이드 스튜디오를 실행해보면 아래와 같이 한글이 제대로 나온다. 한글이 깨져나오는 문제는 상당히 복잡하고 큰 문제다. .. 더보기
레이아웃(xml) 색 반전 다른 소스의 레이아웃이나 XML을 참고하려고 복/붙을 하다보면 아래와 같이 레이아웃(XML)의 색이 반전되어 나오는 경우가 생긴다. 분명히 XML 파일을 봐도 레이아웃 바탕화면 색깔에 관한건 없다. 그런데도 레이아웃 바탕화면 색깔은 검정색이다. 먼저 styles.xml로 이동하자. parent="Theme.AppCompat"으로 되어있거나 아니면 다른 어떤걸로 되어 있을 수도 있다. parent를 아래와 같이 바꾸자. 색 반전이 일어났던 XML로 가보면 하얀바탕으로 나오는 것을 확인 할 수 있다. 더보기
버터나이프 에러 or 오류 참고 자료: https://youtu.be/6Qma6kTG2As 보통 버터 나이프를 사용하려고 아래와 같이 compile 'com.jakewharton:butterknife:8.1.0' 만 추가 하는 경우가 있다. compile 'com.jakewharton:butterknife:8.1.0' 만 추가 하고 버터 나이프를 사용하면 아래와 같이 널 익셉션 에러가 난다. 이때는 build.gradle(Module:app)를 클릭 한 후 아래 그림과 같이 apply plugin: 'android-apt' 와 apt 'com.jakewharton:butterknife-compiler:8.1.0' 를 추가 한다. apply plugin: 'android-apt' 와 apt 'com.jakewharton:butter.. 더보기
안드로이드 자바 vs 표준 자바 안드로이드 자바와 표준 자바의 차이점: 표준 자바는 VM이라는 버츄얼 머신을 사용하기 때문에 성능이 떨어짐. 저사양 단말(핸드폰, 각종 인베디드 할 장치 등)에서 취약함. 특히 그래픽 쪽의 성능이 매우 낮다. 그래서 안드로이드 자바는 표준 자바와 비슷하지만 화면을 구성해주는 API를 표준 자바 보다 더욱 크게 개선함. 더보기
필수 설치 Android SDK Manager 처음 안드로이드를 깔거나 새롭게 Packages Tools를 추가해야 할 때 다 깔기엔 왠지 손해보는 느낌이 들고... 안 깔자니 찝찝 할 때! 필수적으로 깔아야 하는 것만 적어보겠습니다. 나머지 녀석들은 자신이 만드는 환경에 따라 TV 쪽이라면 TV에 관련된 것 설치, 웨어러블이라면 괸련된 것 설치...아무튼 밑줄 그은 것들은 필히 설치! 하시길.. 그리고 웬만하면 Extras는 다 설치 하시길... 더보기
프래그먼트(Fragment) 쉽게 만들기 Fragment 가 조각이라는 뜻을 꼭 기억해야 합니다. 위의 그림같이 일일이 인텐트로 액티비티 마다 옮겨간다면 관리가 쉽지 않습니다. 액티비티 생명주기 다 거치고 UI 개별 요소 관리, 각 부분의 상태변화까지 모조리 확인 하며 프로그래밍 한다는 것은 상당히 피곤한 일입니다. 물론 초보일 때는 Intent로 넘겨주는 것만 해도 끝나지만.. 아무튼 이러한 것을 Fragment를 사용하면 Fragment Manager가 알아서 해줍니다. 그래서 Fragment를 사용합니다. 읽으시는 분중에 '나는 생명주기도 모르겠고, Fragment Manager도 모르겠고.. 그냥 계속 인텐트로 액티비티를 많이 쓰면 앱이 느려지고 리소스 많이 잡아먹을까봐 Fragment 쓰려고 한다' 라고 생각하시는 분들도 있을 겁니다... 더보기
레이아웃 관련 아래 그림은 위 그림과 똑같은 내용인데, 실제 안드로이드 스튜디오의 화면을 가져다 만든 것. padding은 텍스트(아래 그림에선 ok)와의 여유공간. layout_margin은 버튼(위젯이라고도고 함)과 전체 화면과의 여유공간 layout:weight 와 layout:height 의 선택 속성중에 wrap_content 라는게 있다. wrap_content 는 안에 있는 내용물(content)에 따라 크기가 변하게 설정 하는 기능이다. 예를들어 아래 그림을 보자. 같은 버튼을 만들고, 버튼 안의 내용물의 길이만 다르게 했다. 둘다 설정은 wrap_content 다. 그런데 길이가 달라진 것이 육안으로도 확인 가능하다. 이렇듯 wrap_content는 내용물에 따라 크기나 길이가 변하는 설정 임을 알 수.. 더보기
extends AppCompatActivity 안에서 dialog 만들기, dialog 크기 변경 제목을 보면 대충 감이 오시리라 믿는다. 무슨말인고하니.. 123456public class example extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }Colored by Color Scriptercs 위와같이 처음 안드로이드 스튜디오에서 액티비티를 만들면 위와같이 나온다. 즉 위의 코드가 거의 기본 모습인데...여기에 dialog를 만드려 한다. 보통 책에 보면 alert 다이얼그니 무슨 다이얼로그니 하면서 상당히 어렵게 표현해 두었다. 가장 빡치는건.. 더보기
큰 사이즈의 bitmap을 효과적으로 줄여서 로딩하기 미리 말해두자면 여긴 완벽한 코드를 올리는 곳이 아니다. 그저 '아..그래서 저 코드를 쓴거구나' 정도만 이해했으면 하는 바람으로 글을 쓰는 것이다. 실제 사례라든지 소스코드는 깃허브나 스텍오버플로우 등에 가서 받길 바란다. BitmapFactory는 각종 디코딩 메소드를 제공함. 디코딩이란게 뭐냐면..2진수나 뭐 어떠한 압축된 형태로 저장되어 있는 녀석을 원래로 복원시켜주는게 디코딩이다. decodeByteArray(), decodeFile() 등 여러가지 디코딩 메소드들이 있는데 내가 가진 다양한 형태의 소스에 따라 알맞는 디코딩 메소드를 사용하면 된다. 일단 bitmap을 디코딩 해봤으면 알겠지만..이미지..사진..이라는게 상당히 큰 용량을 자랑한다. 크기도 1024x768을 기본으로 할정도로..... 더보기