Programming/Android 56

[Android] Notification에 큰 이미지 적용하기

최근에 많은 앱들이 젤리빈(Android 4.1) 버전에서 추가된 BicPictureStyle을 이용하여 노티바에 큰 이미지를 보여주고 있다. 두손가락을 이용해 위로 드래그 하게 되면 접히고, 아래로 드래그 하면 큰이미지가 보이면서 열리게 된다. 즉..접혔을때의 컨텐츠와 열렸을때 서로 다른 컨텐츠를 지정할 수 있다. 필자는 다양한 버전을 지원하기 위해 v4 support library를 사용하였으며 해당 값들의 세팅은 임의로 지정하였다. /** * 먼저 NotificationCompat Builder를 선언한다. * Builder의 경우 접혔을 때 노티바에 표시할 컨텐츠를 설정한다. */ NotificationCompat.Builder builder = new NotificationCompat.Build..

Programming/Android 2014.12.30

[Android] 사진 저장 후 갤러리에 보이지 않는 경우-MediaScanner

개별 파일로 intent를 통해 리소스 디비 업데이트 이동~~(Click) 이번에는 폴더 전체 스캔, MediaScanner를 통해 업데이트를 해보겠습니다. 이부분도 간단하게 구현가능한데, 범용성을 위해 클래스로 뺐습니다^^; package com.jhlibrary.util; import android.content.Context; import android.media.MediaScannerConnection; import android.media.MediaScannerConnection.MediaScannerConnectionClient; import android.net.Uri; public class MediaScanner { private Context mContext; private String..

Programming/Android 2014.07.25

[Android] 사진 저장 후 갤러리에 보이지 않는 경우.

안드로이드에서 현재 화면을 저장하는 경우, 또는 이미지를 저장하였을 때 갤러리에서 보이지 않는 경우가 있다. 안드로이드에서는 사용자가 가지고 있는 리소스를 디비화 해서 저장하고 있는데, 해당 파일의 정보 및 썸네일까지 담고 있다. 그래서 갤러리 같은 경우, 이미지 파일을 보여주긴 하지만 상당히 빠른 속도로 화면을 볼수 있는 이유 중의 하나이다. 아무튼..갤러리에 보여주기 위해서는 디비에 업데이트 해주는 인텐트가 필요하다. 아니면 별도의 스캐너를 사용해도되고.... 간단하게 인텐트를 통해 해당 파일을 업데이트하는 방법이다. // context.sendBroadcast(new Intent( Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)) ); // c..

Programming/Android 2014.07.25

[Android, Hybrid] 앱에서 파일 다운로드 구현. URL File Download.

웹브라우저를 이용해서 파일을 다운로드 받을 경우, 다운로드매니저를 통해 받게 된다.(진저브레드 이상) 앱에서 다운로드 매니저를 사용하여 파일 다운로드 받는 방법을 쓰고자 한다. 앱이나 하이브리드나 다운로드 하는 방법은 동일하다. 다운로드 매소드, 그리고 다운로드매니저로부터 액션을 받을 수 있는 리시버를 만드면 끝.! Download Method private DownloadManager mDownloadManager; //다운로드 매니저. private int mDownloadQueueId; //다운로드 큐 아이디.. private String mFileName ; //파일다운로드 완료후...파일을 열기 위해 저장된 위치를 입력해둔다. /** * @param url : 파일을 다운로드할 url. */ p..

Programming/Android 2014.07.10

[Android] Notification 에서 onNewIntent가 타지 않는 문제. How to call onNewIntent from Notification.

launchMode 가 singleTask 혹은 singleTop 인 Activity에 intent를 보내게 되면, 존재 할 경우 onNewIntent, 존재하지 않을 경우 Activity가 새로 시작하게 된다. 일반적인 방법으로 액티비티를 호출할 때에는 startActivity로 호출하지만, Notification을 통해 호출할 경우 PendingIntent를 사용하는데, 액티비티의 모드가 singTask, singleTop 이며 존재하는데도 강제로 액티비티를 재시작시키는 경우가 있다. (아마도..안드로이드 레퍼런스에 코드만 보고 만들어서 그런건 아닐까 생각이 든다.) 정상적인 Activity lifecycle을 태우기 위해선, PendingIntent 생성시 requestCode를 반드시 넣어야한다...

Programming/Android 2014.06.26

[Android] 안드로이드 TextView 글자에 색깔 넣기. 부분적으로 색깔 넣기. html 스타일 적용.

Spannable 객체를 이용할 경우. 24와 37은 인덱스 값. 24~37 사이에 있는 글자만 변경된다. Spannable descriptionString = (Spannable) mDescriptionTextView.getText(); descriptionString.setSpan(new StyleSpan(Typeface.BOLD), 24, 37, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE); descriptionString.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.guide_message_highlight)), 24, 37, SpannableString.SPAN_EXCLUSIVE_EXCLUSIVE..

Programming/Android 2014.06.24

[Android] TextView, 글자에 외곽선(Border, outline) 넣기

안드로이드에서 외곽선을 넣기 위해선 TextView를 Customizing해야한다.(다른방법이 있을 수도..;) TextView를 상속받아서 뷰를 조금 수정해야하고, 편하게 사용하기 위해 attr을 선언해주면 된다. 먼저 TextView를 상속 받은 OutlineTextView를 만든다. public class OutlineTextView extends TextView { private boolean hasStroke = false; private float mStrokeWidth = 0.0f; private int mStrokeColor; public OutlineTextView(Context context) { super(context); } public OutlineTextView(Context c..

Programming/Android 2014.06.24

[Android] 안드로이드에서 httpPost multiparts로 전송하기(멀티파트, 멀티파츠)

안드로이드에서는 httpClient의 버전이 낮아 multiparts를 지원하지 않는다. 보내고 싶다면 httpConnection을 열고, buffer를 통해서 전송해야 하는데, 만들기가 여간 귀찮은 것이 아니다. apache에서 httpComponents를 제공하고 있는데, 해당 라이브러리를 사용하면, 별다른 구현을 하지 않더라도 multiparts로 전송할 수 있게 된다. 물론 약 1메가 정도의...라이브러리가 추가되긴 하지만.. 아파치 사이트로 이동하여 httpClient 최신버전을 다운받는다.(전 4.3.X 버전 사용중) Download Page(Click) 당연히 jar 파일이 필요하기 때문에 binary를 클릭해서 받아준다. 다운후 압축을 해제하게 되면, examples, lib, tutori..

Programming/Android 2014.06.24