분류 전체보기: 247개의 글
HttpClient 사용하기 - AndroidStudioAndroid SDK API 23부터는 HttpClient를 더이상 지원하지 않아 HttpClient 를 사용하기 위해서는 추가적인 작업이 필요합니다.useLibrary 추가 하기버전 다운그레이드 하기 useLibrary 추가 하기build.gradle(Module:app)에useLibrary'org.apache.http.legacy' 항목을 추가해 주세요android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.tistory.codedragon.a52newsxml" minSdkVersion 15 targetSdkVersion 23 versio..
스튜디오 쓰다보면 아파치 jar 포함해도안되고.... 기본으로도 아파치 없다고 하고.. 그럼... 해결방법import org.apache.http.client.HttpClient;해결방법app 내에 build.gradle 파일을 열자======================================================================================apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "패키지명" minSdkVersion 11 targetSdkVersion 23 versionCod..
Activity 호출시 발생하는 !!! FAILED BINDER TRANSACTION !!! 해결법.- startActivity 나 startActivityForResult 를 통해서 activity 를 실행시킬 때, 간혹가다 다음과 같은 결과를 볼 수 있습니다. E/JavaBinder(199): !!! FAILED BINDER TRANSACTION !!! - 저는 Gallery 로부터 Crop 된 이미지를 가져오는 데 이런 에러가 발생하며, 해당 앱의 프로세스가 미친듯이 늘어나는 현상을 겪었습니다. 원인- android 에서는 intent 를 통해 전달할 수 있는 데이터 양이 100KB 로 제한되어 있습니다. - 저는 Gallery 로부터 큰 이미지를 가져와서 100KB 를 넘겨서 발생한 문제로 보입니..
ListView를 활용한 프로그래밍을 하는 도중에 자주 볼 수 있는 에러입니다.저런 에러가 발생하는 경우는 대부분 UI 쓰레드가 아닌 별도로 생성된 멀티쓰레드에서 UI(여기서는 ListView)를 갱신하려고 했을 때 발생합니다. 인터넷을 검색해 본 결과, UI쓰레드에서 갱신할 수 있게끔 하라는 겁니다. 12345runOnUiThread(new Runnable() { public void run() { listViewAdapter.notifyDataSetChanged(); }}); 저에겐 위의 코드를 쓸 이유가 없었습니다. 왜냐하면 저 리스트뷰를 갱신하게 하는 함수를 대부분 UI쓰레드에 해당하는 핸들러에서 처리를 했기때문입니다. (쓰레드와 핸들러와의 관계는 검색하시길..) 그러기에 제대로 작동하고 있던 리..
익셉션 모두 앱을 시작할 때 onstart() 메소드안에 구현해 놓은 인터넷 접속 여부를 체크하는 구문에서 발생했습니다. 익셉션이 다발로 터지고 있던 구문은 다음과 같습니다. cManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mobile;NetworkInfo wifi; mobile = cManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);wifi = cManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if (mobile.isConnected() || wifi.isConnected()) { Toas..
1. File -> New Other 를 클릭해주세요 2. Android -> Android Project from Existing Code 를 눌러주세요 3. sdk ->extras -> android -> support -> v7 -> appcompat 를 클릭 후 확인 4. appcompat 선택 하시고 finish 를 눌러주세요. 5. 프로젝트 확인여기서 만약 프로젝트가 에러표시가 난다면 android-support-v7-appcompat 프로젝트에서 Properties를 클릭후 android에서 Project Build Target을 Android 6.0 이상을 선택 후, 프로젝트 클린(API 21부터 된다고 하였는데 저의 컴퓨터에서는 23부터 됩니다.) 6. 새로운 프로젝트 or 작업하시던 프..
이전에 포스트 내용으로 이미지로딩 라이브러리와 Glide에 관하여 소개해드렸었습니다.이미지로딩 라이브러리 및 Glide소개 보기 이번에는 요즘 제일 많이 쓰이고 있고 레퍼런스가 많은 Picasso와 Glide에 대해서 비교해서 분석해보도록 하겠습니다.또한 실제 제가 사용해보면서 느낀점도 추가해서 써보겠습니다. Glide의 사용방식은 Picasso를 그대로 따라했다고 봐도 될정도로 사용방법이 비슷합니다.(기존에 Picasso를 사용하던 개발자들이 Glide로 쉽게 넘어올수 있도록 비슷하게 만들었을것이라고 예상합니다) 기본 사용방법기본적인 사용방법은 Picasso,Glide 완전히 똑같은 방식입니다. Picasso Picasso.with(context).load("http://www.selphone.co.k..
우리가 ImageView에 사진을 띄우고자 하는 경우는 여러가지 입니다.1. 안드로이드 앱 안의 drawable폴더의 리소스를 보여주는 경우 2 .안드로이드 디바이스 안에 저장되어있는 사진을 보여주는 경우(갤러리 혹은 기타 내부 사진)3. 이미지 URL을 로드해서 보여주고자 하는 경우 1,2번의 경우는 안드로이드 기기 내부의 리소스를 불러오는 작업이므로 예외사항도 적고 실제 구현도 복잡하지 않습니다.그러나 3번처럼 이미지의 URL인 경우 http클라이언트를 이용해서 ImageView에 보여주어야 하는경우는 고려해야할 사항이 많습니다.로딩 실패처리, 재시도처리, Out of Memory, 캐시,병렬처리, 디코딩, 이미지재활용 등등 요약하면, 이미지 로딩을 구현할 때는 HTTP 통신을 안정되게 구현하고, 비..
Jsoup Download : http://jsoup.org/download 위의 사이트에서 라이브러리를 다운로드한다 다음과 같은 방법으로 안드로이드 프로젝트에 jsoup 라이브러리를 포함시킨다 위와 같이 설정해주고 Project > Clean 을 한번 수행해주면 된다
이번에 HTML 파싱을 할 기회가 있어서 가장 유명한 두 가지 라이브러리를 사용해 보았다.jar파일은 첨부해 놓은 버전을 사용했다. 1. HTML이 존재하는 사이트의 주소를 입력하면 source에 담기는데 fullSequentialParse()를 통해 위에서부터 순차적으로 검색을 한다.Source source = new Source(new URL("사이트주소")); source.fullSequentialParse(); 2. 클래스명으로 List에 엘리먼트가 담긴 형태로 데이터를 리턴 받는다. List divList = source.getAllElementsByClass("클래스"); * 아이디도 가능source.getElementById("id명") 3. 클래스명으로 받아온 리스트에서 div > a > ..