티스토리 뷰
Android Actionbar에 적용되는 Share 버튼예제를 작성해봤습니다. 기존에 작성했던 글 중에도 동일한 글이 있었습니다. 그 때와 비슷한 코드로 작성되었지만 Actionbar에 포함되는 점이 다르게 됩니다.
이미지 공유 버튼 생성 예제
이번 예제 코드는 아래 링크를 통해 다운 받을 수 있습니다.
https://www.dropbox.com/s/gj3bzwtzenv4gxq/ActionbarShare.zip
Actionbar Sherlock 예제 미리보기
Share Action Provider 공유버튼 결과 화면
Actionbar에 공유버튼을 사용하는 예제이며, 아래는 완성된 예제 화면입니다. 액션바에 추가되었으며, 액션바 공유버튼을 누르게되면 최근에 사용하는 버튼이 공유버튼 오른쪽에 붙게 됩니다. 처음 실행하면 아래와 같이 표시되는 공유버튼입니다.
이미지만 공유되는 경우와 텍스트와 이미지 함께 공유하는 경우 2가지가 가능합니다. 아래는 이미지만 공유하는 경우입니다.
이미지와 텍스트 모두를 intent로 넘겨주더라도 처리하지 못하는 어플도 있으며 아래는 이미지와 텍스트 모두 동시에 공유하는 경우입니다.
Action Provider API
Action Provider 디자인 guide 홈페이지
http://developer.android.com/guide/topics/ui/actionbar.html#ActionProvider
Share Action Provider API
http://developer.android.com/reference/android/widget/ShareActionProvider.html
Shareaction API
http://developer.android.com/training/sharing/shareaction.html
Action Provider API 예제
액션 Provider API를 사용하기 위해서는 액션바에 추가해야 할 메뉴, Share Provider를 위한 코드가 필요합니다. 제가 사용한 메뉴의 item은 아래와 같습니다.
<item android:id="@+id/share" android:showAsAction="always" android:title="@string/share" android:actionProviderClass="android.widget.ShareActionProvider"/>
Share 옵션 메뉴 예제
@Override public boolean onCreateOptionsMenu(Menu menu) { // actionbar 메뉴 호출 getMenuInflater().inflate(R.menu.main, menu); // Share Provider를 사용할 아이템 선택 MenuItem menuItem = menu.findItem(R.id.share); // Share Action Provider 생성 mShareActionProvider = (ShareActionProvider) menuItem.getActionProvider(); // 마지막에 공유한 프로그램이 어디인지 Log를 남기기위한 xml 정의 mShareActionProvider.setShareHistoryFileName("custom_share_history.xml"); //공유를 하기위한 Intent 정의 mShareActionProvider.setShareIntent(createShareIntent()); return true; } // 공유 인텐트 정의 private Intent createShareIntent() { Intent shareIntent = new Intent(Intent.ACTION_SEND); shareIntent.setType("image/*"); Uri uri = Uri.fromFile(new File(SHARE_IMAGE)); shareIntent.putExtra(Intent.EXTRA_STREAM, uri); //Text Share시 image를 기준으로 공유가 되며, 불가능한 경우도 있음. shareIntent.putExtra(Intent.EXTRA_TEXT, "Text share example"); return shareIntent; }
마무리
Action Provider 예제를 작성해보았습니다. Actionbar Sherlock에서도 동일한 코드로 사용이 가능합니다. 이후에는 액션바 예제를 필요할 때마다 하나씩 추가해보려고 합니다. 기존에는 한번에 다 정리하려고 했지만 생각보다 제공방식이 많다보니^^;;; 나누어 작성하려고 합니다.
이번 예제 코드는 아래 링크를 통해 다운 받을 수 있습니다.
https://www.dropbox.com/s/gj3bzwtzenv4gxq/ActionbarShare.zip
Actionbar Sherlock 예제 미리보기
'Android Develop' 카테고리의 다른 글
1. Google Play 개발자 콘솔의 새로운 서비스 5가지 (0) | 2013.06.15 |
---|---|
Google Play Services의 새로운 API 5가지 살펴보기 (0) | 2013.06.10 |
Android Navigation Drawer API 공개! 디자인 가이드 살펴보기 (8) | 2013.05.23 |
2. Android Studio 0.1 윈도우에 설치 및 살펴보기 (2) | 2013.05.20 |
1. Android Studio 0.1 런칭 (IntelliJ IDEA) (0) | 2013.05.19 |
댓글