본문 바로가기

프로그래밍/Android 짜투리 지식

[android] db asset경로에서 참조하기 외부 database를 참조하고 싶을때, 어떻게 해야할까. 기본적으로 database를 생성하면, package에 포함되 버려서 database를 열람하지 못한다. (emulator에서는 explorer로 볼수 있다. 하지만 폰에서는 확인하지 못한다.) DATABASE 운용이 잘 되는 개발자라면, 별 어려움을 못느끼겠지만... 그런사람이 얼마나 될까. 그래서 내부 database를 외부로 빼내서, sqlite browser나 파이어폭스 sqlite manager로 보고싶다. public static final String PACKAGE_DIR = "/data/data/com.mob.package/"; public static final String DATABASE_NAME = "db/testdb.sqli.. 더보기
[android] encrypt decrypt decrypt에 사용하는 클래스 : Cipher decrypt 과정 SecretKeySpec keySpec = new SecretKeySpec(keyArr, "AES"); // AES 암호화 알고리즘으로 Cipher 초기화 Cipher cipher = Cipher.getInstance("AES"); // decrypt 모드로, 비밀키를 keySpec으로 지정 cipher.init(Cipher.DECRYPT_MODE, keySpec); // 복호화 진행(doFinal) byte[] decBytes = cipher.doFinal(toByte(source)); 여기서 중요한점은 SecretKey 설정인데, secretKey가 왔다고 그걸 그대로 getByte()로 변환해서는 안된다. public static .. 더보기
[android] FragmentActivity - Fragment 에 하드웨어 키 리스너 가져오기 2015. 03. 12 추가.이 문제에 대해.. 최근 ADT, android studio에서는 Fragment를 생성하면 CallbackListener를 필수로 생성해준다. 때문에 아래같은 고민은 덜 수 있다. 물론 직접 class 생성하고 Fragment를 생성하면 아래와 같은 고민이 필요하다. 최근 TabActivity에서 FragmentActivity의 사용이 빈번해졌다. 이유는 Honeycomb의 탄생으로,, 생략 그런데 여기서 속썩이는 문제가 있다. FragmentActivity에서도 TabHost를 사용할 수 있다. 그리고 그 각각의 탭을 가질 수 있는데, (물론 이건 허니콤 이전에도 발생했다.) 하드웨어키가 안먹는다는 것이다. 그럼 각각의 탭에서 발생한 클릭이벤트는 어떻게 처리해줘야하지? 죄.. 더보기
[android] sdcard 내 image 검색 String [] proj = {MediaStore.Images.Media.DATA,MediaStore.Images.Media.TITLE};Cursor imageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,proj, "_data LIKE '/mnt/sdcard/%'", null, null);이건 곧 다음과 같은 SQL 구문으로 표현할 수 있다. select MediaStore.Images.Media.DATA, MediaStore.Images.Media.TITLEfrom MediaStore.Images.Media.EXTERNAL_CONTENT_URIwhere _dataLike '/mnt/sdcard/%' manageQuery ( U.. 더보기
[android] selector 앱을 보다보면 버튼이 눌려졌을때, 색이 변하는 경우가 있다.우와~~ 신기하다. 처음엔 이렇게 생각했다.button up event 랑 down event를 잡아서 그때마다 이미지를 스위치 해주면되겠구나~~맞는말이다. 그런데 이런것도 있다. selector android:state_pressed = view.isPressed()android:state_selected = view.isSelected() android:state_ 의 종류 normal enable(true) view가 활성화 상태 disable enable(false) view가 비활성화 상태 focused isFocused() 입력 대기상태 or select된 상태 pressed isPressed() Indicates whether the.. 더보기
[android] scrollView child const size 스크롤 뷰를 사용하는데 자식 뷰의 사이즈가 원하는대로 되지 않아서 고생이었다. 동적?사이즈 배분을 해야하는데(형제 뷰의 사이즈에 따라 해당 사이즈가 달라져야한다) 이게 해결이 안되서 몇주동안 미뤘는지 모르겠다. 해결하고자 하는 내용은 다음과 같다. 1. 가로 스크롤 뷰에 들어가는 자식들의 너비(width)를 처음 세팅한 스크롤뷰의 너비(width)로 주고싶다. 2. 더 쉽게 말하면, 스크롤뷰의 자식들의 사이즈를 원하는 사이즈로 주고싶다 [문제] 1. 처음 view를 생성할때 .xml로 생성된 view는 width 와 height가 정해져 있지 않다. 0이다. 2. view 이전에 너비는 화면의 사이즈를 가져오면 되므로, 우측 사이즈는 걱정이 없다. 하지만 왼쪽 시작 위치를 알지 못하기 때문에 길이를 구할.. 더보기
[android] 스마트폰 해상도 정리 320*240(QVGA) 소니에릭슨X10mini, X10mini pro, HTC디자이어팝 480*320(HVGA) 삼성전자 갤럭시GIO, 갤럭시ACE, 갤럭시ACE PLUS LG전자옵티머스원, 옵티머스시크, 안드로원 KT테크스마트볼 팬텍(스카이) - 미라크A 모토로라 - 모토믹스 HTC - 레전드 800*480(WVGA) 삼성전자갤럭시NEO, 갤럭시S, 갤럭시S호핀, 갤럭시U, 갤 럭시K, 갤럭시A, 갤럭시S2, 갤럭시S2 LTE, 넥서스S LG전자 옵티머스Q, 옵티머스Z, 옵티머스마하, 옵티머스블 랙, 옵티머스빅, 옵티머스2X, 옵티머스3D, 옵티머스EX, 옵티 머스Q2, 프라다폰3.0 KT테크테이크, 테이크2, 테이크 타키 팬택(스카이)이자르, 미라크, 베가, 시리우스, 베가X, 베가X +, 베가S,.. 더보기
[android] dp 값 가져오기 DisplayMetrics out = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics( out );int dp= outMetrics.densityDpi; 더보기
[android] R.java 공유 R.java 파일은 단 하나다. 하나의 패키지 밑에 꽁꽁 숨어있다. 그런데, 패키지를 나눠서 프로그래밍을 하다보면, 해당 패키지에는 R.java가 없음을 눈치채게 된다. 앗!!!!!! 어떡하지? 다른패키지인데? import해주면된다. 참조해서 쓴다면 아무 문제 없어요~ 더보기
[안드로이드] editText 터치 시 editText가 가려지는 문제 Q. editText가 화면의 전부인데 타이핑을 하려고하면 editText가 가려져서 어떤 말을 치고있는지 알수가 없다. A. 이걸 고민하고 있었다. 해결방법은 간단하다.. 부모 레이아웃을 scrollView로 주면된다.. scrollView 는 뷰 자체를 스크롤로 만들어버린다. 특정 width나 height를 정해지면 그 범위를 벗어난 출력은 스크롤로 보여준다. 화면에 찍힌 editText들을 포함한 레이아웃이 scrollView 밑의 LinearLayout1이다. LinearLayout3은 textView LinearLayout4는 editText 를 수직으로 가지는 레이아웃이다. 더보기