본문 바로가기

프로그래밍/Android

(93)
MediaStore 오디오 재생목록 >> 중요 필드MediaStore.Audio.Media_ID : 미디어 IDDATA : path MediaStore.Audio.Playlists_ID : 플레이리스트 아이디NAME : 플레이리스트 이름 MediaStore.Audio.Playlists.MembersAUDIO_ID : 미디어 ID >> 재생목록 생성String name = "생성할 리스트 이름"; // Uri uri;// context 의 resolver 얻기ContentResolver resolver = getContentResolver(); // 해당 이름의 플레이 리스트가 있는지 검사Cursor c = resolver.query( MediaStore.Audio.Playlists.EXTERNAL_CONTENT_URI,null,MediaS..
List adapter 리스트 관련해 정리한게 하나도 없었다.희안하게도 근 2년 동안 리스트를 쓸 일도 없었다 -_-;;물론, BaseAdapter를 상속받아 갤러리 어댑터는 사용했지만다른 리스트들은 프로젝트에 포함된 적이 없으니.. 이제서야 리스트와 관련한 어댑터를 정리 해본다. ArrayAdapterstring 배열을 위한 어댑터레이아웃과 하나의 뷰를 표시하기 위한 어댑터이다.new ArrayAdapter( this, R.layout.xxx, list ); 커스텀한 레이아웃을 구성하기위해서는getView() 를 오버라이드해 준다.getView에서 지정한 레이아웃이 입력되는데, 이 뷰를 inflate 해서 하위 요소들을 얻고,해당 하위 뷰에 데이터를 설정하면 된다. CursorAdapter일반적으로 db 쿼리에 따른 데이터를..
낙서 그냥 가로,세로 전환 관련해 이렇게 써먹어 보면 어떨까 해서 적어봄..일단 진저까지 가로세로간 에니메이션은 지원하지 않으므로,이건 어쩔수 없다고 쳐도.. 가로, 세로의 경우 서로다른 액티비티를 사용하는 프로그램에서액티비티간 에니메이션 역시 세로->가로, 가로->세로인 경우 정상적으로 먹지않는증상(?)이 나타나서... 꽁수 연구중..허니콤부터는 상관없을 것 같은데...쩝.. 세로 레이아웃은 원하는 디자인을 넣고,가로 레이아웃은 LinearLayout id="@+id/layout_a" 하나로만 구성. 세로에서 가로로 전환이 이루어지면, 바로 레이아웃을 set 하지말고, 현재 화면을 복사.이후 가로모드로 set 하고, 배경으로 복사한 이미지 그림. 그리고, 액티비티 호출. public void onConfig..
터치 이벤트 처리순서 터치 이벤트의 순서 터치 이벤트 발생시 처리되는 핸들러 메쏘드의 순서는 아래와 같다.dispatchTouchEvent()onTouch()onLongClick()dispatchTouchEvent()onTouch()on_click()동일한 메쏘드는 down, up 으로 구분된다. 저 순서는 다시 activity - viewgroup - view 로 향한다.onLongClick 와 on_click 은 확정된 처리이므로, 이벤트를 하위로 넘길 수 없지만나머지 메쏘드들은 boolean 리턴 값으로 해당 이벤트가 처리되었는지를알릴 수 있다. ViewGroup의 경우 하위로 가는 이벤트를 가로챌 수 있는 핸들러도 존재한다.onInterceptTouchEvent() 또한, 부모 ViewGroup이 이벤트를 가로채지 말..
천천히 로딩되는 리스트 아이템 천천히 로딩되는 리스트는 sdk 의 api데모에 포함되어 있다.스크롤 이벤트에 따라 전역변수를 두어 스크롤이 이동할때는 리스트 아이템을 특정 view가 보이도록 하고,스크롤 이동이 끝나면 세부 view를 보이도록 한다.Adapter의 getView 메쏘드를 통해 리턴되는 view를 조절하면 된다. api demos의 소스를 대략 살펴보면 아래와 같다.이 소스에서는 아이템은 TextView를 사용했으며, tag 정보를 통해 아이템 항목을 다시 설정한다.(일부 내용을 제거 했으므로 정상 소스는 sdk 샘플에서 확인..)1. 레이아웃을 구성한다. 2. 액티비티 ListActivity 구성. public class List13 extends ListActivity implements ListView.OnScro..
이미지 클리핑 기초 간만에 안드로이드 관련 포스팅~ 이미지 클리핑.. 이미지를 표시하다보면 특정 부분만 표시하거나 특정 모양으로 표시해야 할 필요가 있다.예를 들어 mp3 썸네일 이미지를 CD 처럼 보이고자 한다면 원형모양으로 이미지를 잘라 주어야한다.바깥부분과 안쪽 원을 제거해주어야 하는데, 이러한 처리는 마스크 이미지를 통한 색상 오퍼레이션이나캔버스의 클리핑 기능으로 구현할 수 있다. 이중 간단한 캔버스의 클리핑에 대해 간단히 정리한다. 1. 이미지 불러오기Bitmap srcImage = BitmapFactory.decodeFile("imageFileWithPath");int width = srcImage.getWidth();int height = srcImage.getHeight(); 2. 백버퍼 만들기Bitmap b..
ffmpeg 빌드 #3 에구 ffmpeg 관련된 포스팅만 세개째.. cpu별 빌드와 일부 플래그에 관해 정리. (참조는 rockplayer ffmpeg 소스 코드 중 build_android.sh) rockplayer는 Android.mk 를 사용한 ndk-build 가 아닌 해당 툴체인만을 참조해 빌드한다.이는 bambuser 와 비슷한데, cpu와 플래그 설정이 좀더 세밀하게 구분되어 있다. 우선, configure 항목중 스크립트에 언급된 내용에 대해 기술한다. 해당 설정이 플레이어마다 각자 다르므로 이 설정이 정확한 값인지는 확인할 수는 없다 -_-;;;더욱이 ffmpeg도 계속 수정되고 있으니...쩝 일반적인 내용으로 빌드해보고, 아래 관련한 오류가 나면 적용해봐야 할 듯... 기본적으로 설정해야 하는 내용은 비슷하다..
ffmpeg 빌드 #2 ffmpeg 옵션별 빌드 FFMPEG Android.mk ( http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html ) config.h 의 define 문자열과 해당 파일을 비교할때 참고할 만 하다. 1: LOCAL_PATH := $(call my-dir) 2: 3: include $(CLEAR_VARS) 4: 5: LOCAL_MODULE := ffmpeg 6: 7: include $(LOCAL_PATH)/config.mak 8: 9: LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 10: 11: AVUTIL_C_FILES = adler32.c \ 12: aes.c \ 13: avstring.c \ 14: base64.c \ 15: crc..