본문 바로가기

분류 전체보기

[Android] 소프트 키보드 레이아웃 문제 때때로 소프트 키보드 위에 레이아웃을 올리고 싶은 경우가 있다. 대부분의 검색결과에서는 menifest 에서 해당 activity에 adjustResize를 걸면 해결된다고 설명하고 있고 실제로 어느 정도는 해결이 된다. 문제는 실제로 그러한 방식을 적용해 보면 EditText 가 아래에 위치한 상황에서 레이아웃에 따라 이러한 형태의 모양을 취하게 되는 경우가 있다는 것이다. 단순히 위의 사진으로는 어느 부분이 문제인지 감이 잘 잡히질 않는다. 그러나 실제의 레이아웃은 이러하다. 소프트 키보드로 가려지기 전 레이아웃을 보면 EditText의 Height가 소프트 키보드에 가려져서 원하는 형태로 보여지지 않았고 또한 아래에 버튼이 존재했음을 볼 수 있다. 버튼과 EditText의 절반 이상이 가려지게 되므.. 더보기
[php] CROSS DOMAIN 대응 방법 CROSS DOMAIN ISSUE 는 JS의 정책에 따라 AJAX등을 이용하여 다른 도메인에 접속을 시도하려는 경우 보안 문제로 간주하고 차단함에 의해 발생한다. 이를 해결하기 위해선 다른 도메인에서 오는 접속에 대해 허용을 해주어야 한다. * response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE"); - POST, GET, OPTIONS, DELETE 에 대해 요청을 허가. * response.setHeader("Access-Control-Max-Age", "3600"); - HTTP Request 가 발생할 때 preflight request라는 요청이 발생. preflight request는 해당 요청으로 접속이.. 더보기
[swift] 스위프트 핸드폰 정규식 func isPhone(candidate: String) -> Bool { let regex = "^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$" return NSPredicate(format: "SELF MATCHES %@", regex).evaluate(with: candidate) } 더보기
[Android] 현재 마운트된 SD카드 리스트 public String[] getExternalStorageDirectories() { List results = new ArrayList(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //Method 1 for KitKat & above File[] externalDirs = getExternalFilesDirs(null); for (File file : externalDirs) { String path = file.getPath().split("/Android")[0]; boolean addPath = false; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { addPath.. 더보기
[Android] uri 패스로 내부저장소 절대경로 찾기. public String getPath(final Context context, final Uri uri) { final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT; // DocumentProvider if (isKitKat && DocumentsContract.isDocumentUri(context, uri)) { // ExternalStorageProvider if (isExternalStorageDocument(uri)) { final String docId = DocumentsContract.getDocumentId(uri); final String[] split = docId.split(":"); final St.. 더보기
[MYSQL] MYSQL 서버에 추가될 INDEX 값 가져오기 $query = "SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = '{Database name}' AND TABLE_NAME = '{Table name}'";$result = mysql_query($query);$tableIdx = mysql_fetch_array($result);$idx = $tableIdx[AUTO_INCREMENT];?>last_insert_id() 나 mysql_insert_id() 의 경우에는 insert 를 하고난 다음에 그 쿼리에 대한 index를 가져온다.그렇기 때문에 INSERT 해야할 시점에 해당 쿼리에 대한 INDEX값을 사용 해야 하는 경우에는 부적합하다. ex ) 댓글, 게시판.위와.. 더보기
[php] base 64 url safe function base64url_encode($data) { return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); } function base64url_decode($data) { return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT)); } ?> 더보기
[Android Studio 3.0] 더 이상 Typekit 을 쓸 필요가 없다. 안드로이드 Support Library 26, Android Studio 3.0 이 드디어 출시되었다. 조금씩 업데이트를 하길래 조만간 뭔가 또 바뀌겠구나 하던 와중 아니나 다를까 역시나. 2.x -> 3.x로 바뀐 만큼 많은 변화가 이루어 졌는데 겉으로 보이는 UI의 변화는 그렇다 치더라도 내부적으로도 많은 변화가 있었다. 크게는 드디어 안드로이드 스튜디오에서 Kotlin 을 쓸 수 있게 된 것. 자바 8 을 정식 지원하게 된 것. 자체적 font 다운 및 폰트 변경 지원. 등이 있다. 그리고 저 폰트 변화에 따라서 현재 2.x 버전에서 한글 Preview를 위해 기존 안드로이트 font.xml 을 변경했었던 사람이라면 3.0 버전업 이후에 preview가 제대로 실행되지 않는다. 업데이트 전에 해당 .. 더보기
activity lifecycle http://www.androidside.com/bbs/board.php?bo_table=B56&wr_id=31599 더보기
[PHP] 문자열 검색 1. 먼저 문자열을 정리하는 함수입니다.$result = trim($string) - 문자열 앞,뒤 에있는 공백문자를 지움.$result = ltrim($string) - 문자열 앞에 들어가는 공백문자를 지움$result = chop($string) - 문자열 뒤에 들어가는 공백문자를 지움 공백문자 - 줄바꿈 개행문자, 탭문자, 스페이스 등의 안보이는 문자 $result = nl2br($string) - 문자열에 포함된 줄바꿈(\r,\n) 문자를 태그로 변환 (php 버전이 4.0.6 보다 낮을경우 높을경우 ) 2. 대소문자 변경 $result = strtoupper($string) - 문자열을 대문자로 모두 바꿈$result = strtolower($string) - 문자열을 소문자로 모두 바꿈$res.. 더보기

반응형