고양이의 둥지 (255) 썸네일형 리스트형 [안드로이드] 동적으로 다음페이지를 로딩하는 ListView 구현 동적으로 다음페이지를 로딩하는 ListView 구현 아이폰의 수많은 UITableView를 활용하는 어플리케이션을 보면 참 퀄리티 높게 잘 만든다는 생각이 드는 것 중에 한가지가 바로, 자동으로 리스트의 가장 아래에 도달하면, 알아서 다음페이지를 로딩하는 기능이 아닐까 싶다. 안드로이드에서도 요즘은 많은 어플리케이션이 해당 기능을 구현하고 있다. 안드로이드에서는 리스트뷰와 데이터간에 Adapter라는 디자인패턴을 활용하고 있어 아이폰의 그것과는 같은 기능이라도 구현하는 방식이 다르다. 안드로이드에서는 좀 더 적극적으로 Adapter를 활용하여 이 기능을 구현해야 한다. 어찌보면 조잡하고 어찌보면 더 쉽게 구현할 수 있다. 길게 이야기할것 없이 예제 코드를 살펴 보겠다. public class Dynami.. CQ40 노트북 청소 컴팩 CQ40 노트북을 구매한지 2년만에 처음으로 분해/청소를 실시했다. 2010년 2월 에 구입했으니 햇수로 정확히 2년만이다. 내부에 먼지가 무척 많이 쌓여서 쿨러 소음도 심하고, 냉각 성능도 저하된듯 하여, 벼르고 있었는데 오늘 과감히 실시! 분해 하면서 찍은 사진은 이것 뿐이이다. 다음 사이트를 참고하여 분해를 진행했는데, 어렵진 않았지만 시간이 꽤 오래 걸렸다. CQ40 분해 참조 : http://www.doriver.com/home/work.php?mid=2&r=view&uid=4282 빠른 분해와 조립의 핵심은 각 나사가 어디에 끼워져 있었는지 잘 분류 해 두는 것이라 생각한다. 조립할때, 각 구멍에 정확히 맞는 나사를 빠르게 찾아내야 하니깐. 키보드, 팜레스트 각 각의 결합력이 생각보다 강.. [C#] .NET 이 아닌 native 코드로 작성된 외부 DLL 사용 방법(파라미터의 타입을 알 수 없는 경우) 외부 메소드의 파라미터가 char* 인 경우(데브피아 C# 마을, 질문&답변) (원본: http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNO=8&no=120108&ref=120099&page=3#Contents120108) 가장 일반적으로 포인터로 넘겨서 값을 받아올경우 할당되어 있는 방으로 넘겨 받아야 합니다. 하지만 DllImportAttribute 클래스를 이용하여 맵핑 하시기에 어려움을 겪으시는것 같네요. 해당 매개변수는 호출지점에 구도에 따라 string, StringBuilder, byte, unsafe.... 맵핑이 가능합니다. 원초적인 방법으로 IntPtr 을 이용한 메모리 활당하여 이용하는 방법도 가능합니다. 사용하시는 .. [안드로이드] 안드로이드의 Process & Threads 안드로이드의 Process & Threads 안드로이드의 프로세스(Process)와 스레드(Threads)에 대해서 공부해 보았다.학교에서 배운 운영체제, 시스템 프로그래밍 등의 과목에서 배운 개념과 크게 다른 점은 없지만, 안드로이드의 프로세스와 스레드에는 분명 안드로이드 고유의 특성이 추가적으로 포함되어 있다.다음 링크의 자료를 참조 하였다. http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html#ThreadSafe 시작하며 안드로이드 어플리케이션 컴포넌트(components)가 실행하려 할 때, 이미 시작된(running) 다른 컴포넌트가 없다면, 시스템은 단일한 하나의 스레드에서 실행되도록 하는 어플리케이션.. Air Pocket Haptic Glove 최종 통합 결과물 영상 2011년 임베디드 소프트웨어 공모대전 Air Pocket Haptic Glove 프로젝트의 최종 통합 결과물 영상이다.2011년 10월쯤에 최종 통합되었다.나를 비롯한 팀원 모두 개강을 했고, 바쁜와중에도 틈틈히 모여 밤을 새가며 통합작업을 하느라 마지막까지 고생이 많았던 프로젝트이다.고생은 많이 했지만... 결과는 좋지 않았다는게 정말 아쉬운 점이다.내가 맡았던 부분은 3D게임 컨텐츠 제작 및 물리엔진 적용이다.영상에서 보면 모니터 화면에 나오는 3D 게임이 내가 개발한 부분이다.3D게임은 C#, XNA 3.1 framework, 3D Max 2011을 사용하여 개발하였다.물리엔진은 XNA용으로 포팅된 JigLibX 를 사용하였다. 아래 영상은 햅틱글러브의 내부 장갑이다.플렉스 센서로 손가락의 구부.. [Java] 비트 연산자 / 시프트 연산자 [Java] 비트 연산자 / 시프트 연산자 자바언어에는 C/C++ 와 동일하게 비트연산자들인 '&', '|', '^', '~' 와 시프트연산자인 '' 가 있습니다.그러나 자바에만 있는 연산자가 있는데요.바로 '>>>' 라는 연산자가 추가적으로 존재합니다. 순서대로 정리해 보도록 하겠습니다. 비트연산자컴퓨터 내부의 데이터를 비트 단위로 비교하거나 조작할 때 사용한다. 1. 논리곱 (and) &각 비트를 비교하여 양쪽 모두 1이면 1, 아니면 0을 반환함. ex) a = 110, b= 220a = 0 1 1 0 1 1 1 0b = 1 1 0 1 1 1 0 0 a&b = 0 1 0 0 1 1 0 0 2. 논리합 (or) |각 비트를 비교하여 어느 한쪽이 1 이면 1, 그렇지 않으면 0을 반환함. ex) a =.. [Java/Tip] 자바에서 unsigned byte 다루기. 자바의 Primitive Data Type 들 중에는 unsigned 데이터 타입이 존재하지 않습니다. unsigned를 특별히 사용할 일이 없을때는 의식하지 못하고 있었는데, 자바에서(정확히는 안드로이드에서 사용할 목적으로) 음성을 G.711 인코딩/디코딩 하기 위한 코덱을 구현 하던 중 깨닫게 되었습니다. byte 타입을 unsigned 로 0~255 을 사용하고 싶었지만, 자바에서는 unsigned 키워드 자체가 존재하지 않아 byte 타입은 -128~127 의 값을 갖게 되어 있더군요. 즉 2's complement 의 값입니다. 하지만 제가 필요한 것은 0~255 의 범위값이었습니다. 정확히는, C#에서 byte 타입으로 보낸 0~255의 값 (이진 값으로는 0000 0000 ~ 1111 111.. G.711 코덱 정보 및 소스 (Encoding & Decoding) G.711은 오디오 인코딩을 위한 코덱(codec)표준 중 하나이며 협대역(narrow-band) 오디오 코덱이다. 원래 전화에서 사용하기 위해 디자인 되었으며, PCM (Pulse Code Modulation, 펄스 부호 변조)이 공식명칭이다. ITU-T에서 1972년에 표준을 만들었다. https://www.itu.int/ITU-T/recommendations/related_ps.aspx?id_prod=911 300-3400Hz 범위의 오디오 신호를 통과시키면서 그것들을 8000Hz로 샘플링한다. μ-law와 A-law 라 불리는 두 종류의 로그 압축 알고리즘 중 하나를 사용한다. 압축된 각 샘플은 8비트로 양자화되어, 최종적으로는 64kbit/s라는 비트전송률(bit rate)이 된다. 또한 G.7.. 이전 1 ··· 18 19 20 21 22 23 24 ··· 32 다음