본문 바로가기

프로그래밍

[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; 더보기
[mysql] error 1045 : Access denied for user 'root'@'localhost' (using password: YES) 가끔씩 mysql이 미치는 경우가 있다. password를 분실한다. ㅡ.ㅡ 그것도 root 계정을.. 다음과 같이 하면 해결 할 수 있다. 1. 비밀번호를 무시하고 구동을 하도록 설정 C:\mysql\bin> mysqld --skip-grant-tables & 2. mysql에 접속 3. root계정에 password를 설정하고 commit mysql > use mysql; mysql > update user set password=password('password') where user='root'; mysql > flush privileges; or commit; 더보기
[servlet] 경로 맞추기 'web.xml' 'servlet class' 'html action' 요 세개사이의 연결이 참으로 짜증나게.. 안맞아서 너무너무 고민했다. html 페이지에서 버튼 클릭이 일어나면 보통 web.xml -> servlet class [html file] action="TestServlet" 였다면 [web.xml] SampleClass의 이름을 가진 url-pattern을 찾아서 같은 servlet-name을 가진 servlet-class를 찾아간다. Hello com.servlet.test.TestServlet Hello /TestServlet 그리고 옵션으로 action에서 지정한 method 형식대로 doGet 또는 doPost를 실행한다. 더보기
[Java] String 처리 [StringBuilder] 문자열을 끼워맞춰서 문자열을 만든다. 알파벳 A to Z 가 있다고 하면 이것을 다 붙이려면 String arr = "a" + "b" + "c" + "d" + ... + "z"; 문자A와 숫자10이 있을때는 String arr = "A" + Integer.toString(10); 하지만 StringBuilder를 사용하면 StringBuilder arr = new StringBuilder(); arr.append(A).append(10); 하게된다면 결과는 String 이 된다. 반복적인 입력에 유용할 것이라고 봄. 사용의 한 예String body = (new StringBuilder(String.valueOf(body))) .append("&") .append(URLEnc.. 더보기