Study/Android

Study/Android

[안드로이드] Bitmap을 불러와서 수정할 때 나는 예외(Immutable bitmap passed to Canvas constructor)

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) 불러온 비트맵을 수정하려 할 때 나는 예외 다음과 같은 상황에서 이러한 예외가 나온다. public class PaintFunction extends View { private Bitmap bitmap; private Canvas canvas; // ... private void setBitmap(int type, String url, @Nullable String fileName) { // ... reset(); } private void reset() { if (fileopen) { if (bitmap != null) { bitmap.recycle()..

Study/Android

[안드로이드] FragmentTransaction에서 애니메이션을 줄때 주의점

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) FragmentTransaction 이것때문에 1시간을 소요했으므로 꼭 기억하자!! FragmentTransaction은 총 2가지이다. 1번) android.app.FragmentTransaction 2번) android.support.v4.app.FragmentTransaction FragmentTransaction을 이용하여 transaction을 만들어 연결을 시킨다. private FragmentTransaction transaction; .... transaction = getFragmentManager().beginTransaction(); ..

Study/Android

[안드로이드] 자바 IO를 이용하여 데이터를 입출력할 때 MIUI에서 주의점

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) 자바의 IO를 이용할 때 MIUI에서의 주의점 참고로 이 글은 검증이 되어있지 않습니다. (여러 사항들을 토대로 제가 추측하는 것입니다.) 입출력 관련 소스를 짤때 자바의 일반 I/O가 아닌 NIO을 채택하여 사용하여 소스를 짰다. 그런데 다른 안드로이드 롬에서는 잘 작동하는 소스가 MIUI 환경에서만 이상한 오류를 뿜어내고 있었다. 바로 MIUI에서만 이렇게 쓰레기가 포함되어 IO가 된다. (NIO뿐만 아니라 일반 IO도 그랬다.) 혹시나 해서 다른 폰과 환경에서 해보았다. 갤럭시 S3 LTE(API 19 CM 롬)에서는 아주 잘 입출력이 되었다. 혹시..

Study/Android

[안드로이드] ADB를 무선으로 연결하기(하지만 완전한 무선은 아닌..)

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) ADB를 무선으로 연결하기(그러나...) ADB를 무선으로 연결하는 방법이다. 하지만 완전한 무선은 아니다. 딱 한번!! 컴퓨터와 연결시켜서 ADB TCP/IP 설정을 해줘야하기 때문에 선연결이 필요하다.(고로 완벽한 무선 연결은 아니다.) 먼저 핸드폰의 "디버깅 모드"를 켜고 컴퓨터와 연결한다.그리고 "같은 네트워크 즉, 같은 와이파이 연결"을 한다. 그리고 안드로이드 SDK가 설치된 폴더에서 "platform-tools" 폴더로 간다.(리눅스라면 그냥 adb를 apt-get 해줘도 된다.) 여기서 윈도우라면 "Shift + 마우스 오른쪽 클릭"을 해서..

Study/Android

[안드로이드] 툴바(Toolbar)의 왼쪽에 버튼을 달기

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) Toolbar 왼쪽에 버튼을 달기 액션바를 대체해서 툴바를 사용하고 있는데 보통 툴바에 버튼을 추가하게 되면 여기에 버튼이 추가되게 된다. 그래서 구글링을 한 결과 나처럼 좌측에 버튼을 넣고싶은 사람이 없는가 보다.. 왜냐하면 그냥 슬라이드 메뉴를 사용하기 때문이다.... 그래서 생각한것이 "뒤로가기 버튼(홈버튼)"을 원하는 버튼으로 대체하는 것이었다. 먼저 뒤로가기 버튼을 활성화 시킨다. public class MainActivity extends AppCompatActivity { // ... @Override protected void onCreat..

Study/Android

[안드로이드] ListView 갱신하기

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) ListView 갱신하기 리스트 뷰에서 값이 변동되었을 때 인지하고 자동으로 갱신하도록 하려면 ListView에 연동시킨 어댑터를 활용한다. public class MainActivity extends AppCompatActivity { private ArrayAdapter adapter; // ... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ... adapter = new ArrayAdapter(this, andr..

Study/Android

[안드로이드] 파일경로 Uri를 String형의 Path로 변환하는 법

프로그래밍 메모장(안드로이드 프로그래밍) 해당글은 본인이 추후에 잊어버려도 다시 기억할 수 있도록 쓰는 메모장같은 형식의 글입니다. (강의 글이 아님) Uri를 String형의 Path로 변환하기 파일을 다른 어플로 부터 읽어들이게 되면 읽어들이게 된 어플 이름과 파일 경로가 얽혀서 들어오게 된다. 이걸 단순하게 toString으로 하게 되면 그 어플 이름까지 얽혀서 String화 되어버린다. 이럴때 사용하는 방법이다. 더보기 // Uri → String형 path public String getPathFromUri(Uri uri){ Cursor cursor = getContentResolver().query(uri, null, null, null, null ); cursor.moveToNext(); S..

Study/Android

안드로이드 계산기 ver2 (Android 4.0.3(API 15) 기준)(소스 첨부)

안드로이드 계산기 ver2 이 소스도 역시 "이클립스"로 제작되어 있으며타겟 API는 15(4.0.3)컴파일 API는 19(4.4.2)로 하였습니다.(그러므로 안드로이드 4.0.3 이하의 버전에서는 구동되지 않을수 있습니다.) 이클립스용 소스라서 "안드로이드 스튜디오"에서는 변환과정을 거쳐야합니다. [업데이트 내역]1. 소스 최적화 및 기능 분할2. 괄호 연산 구현3. 우선순위 연산 구현4. 지우기(←)버튼 구현 업데이트 하다보니 소스가 완전히 달라졌습니다.예전에는 위의 소스처럼 메인소스 내부에서 계산을 했다면 지금은이렇게 내부에서는 계산을 하지 않고 입력된 식을 String으로 변환하여 전달해서CalcEngine이라는 자바파일을 따로 생성하여CharListStack과 DoubleListStack에 맞게..

Study/Android

안드로이드 계산기 ver1 (Android 4.0.3(API 15) 기준)(소스 첨부)

안드로이드 계산기(API 15) 원래 계산기 만드는게 이렇게 힘들었던 것인가.... 최소 API : 15(4.0.3)타겟 API : 15(4.0.3)컴파일 API : 19(4.4.2) API 15 함수로만 이용해서 ICS 이상은 전부 돌아갈거라고 믿습니다.(테스트 : 4.0.3 구동확인, 4.4.2f 구동확인, 5.0.2 구동확인, 6.0.1 구동확인)계산방식은 윈도우 계산기처럼 "입력된 순서대로 처리"하는 방식입니다. 오른쪽 상단에 메뉴가 있는데소스를 변형시키고 먼저 테스트해보는 페이지만 만들었습니다. 일단 업데이트를 소스 테스트페이지에만 적용하고 이것저것 해보고 버그가 없으면기본페이지에 적용하는 방식으로 하고있습니다. 첨부파일 받으셔서 이클립스로 여시면 됩니다. 제가 만든 소스는 어떻게 생각해보면 조..

Eskeptor
'Study/Android' 카테고리의 글 목록