[Android] 파일 압축, zip 파일 만들기 Manifest permisiion 추가 ZipManager Class public class ZipManager { private static final int BUFFER = 80000; private static final int BUFFER_SIZE = 1024 * 2; private static final int COMPRESSION_LEVEL = 8; /** * 파일 압축 * @param _files : 압축할 파일 이름 경로 리스트 * @param zipFileName : 저장될 경로의 파일 이름 */ public void zip(String[] _files, String zipFileName) { try { BufferedInputStrea..
[Android] Multi Touch Event Example Touch Index 는 getPointerCount() 로 읽은 터치 개수로 0부터 터치 최대값 이전까지 구분되는 값 Touch ID 는 getPointerId(index) 으로 읽은 값으로 터치 Event별로 0부터 시작하는 고유 ID값이 주어진다. 터치 index 와 id 값의 구분 방식은 아래의 멀티 터치 예시를 참고하세요. # Multi Touch Example Code public class MainActivity extends AppCompatActivity { int[] id = new int[3]; int[] x = new int[3]; int[] y = new int[3]; String result; TextView tex..
Android 의 drawLine과 drawPath 사용법 가이드 drawLine은 스펠링 그대로 선을 하나 그려주는 것이고, drawPath는 개발자가 경로를 정해준 후에 그 경로대로 canvas에 그리는 것입니다 canvas.drawLine(startX, startY, stopX, stopY, Paint) drawLine(X좌표 시작, Y좌표 시작, X좌표 끝, Y좌표 끝, 페인트) drawLine 을 이용하여 아래의 시작과 끝을 잇는 선을 간단하게 그리는 방법입니다. (0, 0) -> (360, 640) public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceSt..
[Kotlin] Type Inference 기존 Java 코드를 Kotlin 으로 옮겨 사용시 아래와 같은 에러를 접하는 경우가 종종 발생한다. "유형 추론 실패 : 매개 변수 T를 추론 할 정보가 충분하지 않습니다." Type inference failed: Not enough information to infer parameter T in fun findViewById (id: Int): T! Please specify it explicitly. 해결 방법은 아래와 같다. 기존 문제의 Java 코드 부분 findViewById(R.id.mainLayout) Kotlin 에서 사용 하려면 아래와 같이 R.id.mainLayout의 View 타입을 명시적으로 알려줘야 한다. findViewById(R.i..