ActionBarSherlock学习笔记——ShareActionProvider

来源:互联网 发布:站长seo查询 编辑:程序博客网 时间:2024/05/21 06:39

ShareActionProvider

1.在menu中加入布局

1 <menu xmlns:android="http://schemas.android.com/apk/res/android" >2 3     <item4         android:id="@+id/menu_item_share_action_provider_action_bar"5         android:actionProviderClass="com.actionbarsherlock.widget.ShareActionProvider"6         android:showAsAction="always"/>7 8 </menu>

2.在设置ShareActionProvider

 1 @Override 2     public boolean onCreateOptionsMenu(Menu menu) { 3         // TODO Auto-generated method stub 4         /** 5          * 解析menu布局文件 6          */ 7         getSupportMenuInflater().inflate(R.menu.main, menu); 8         /** 9          * 获得分享item10          */11         MenuItem item = menu12                 .findItem(R.id.menu_item_share_action_provider_action_bar);13         /**14          * 获得share对象15          */16         ShareActionProvider provide = (ShareActionProvider) item17                 .getActionProvider();18         /**19          * 添加历史记录选项20          */21         provide.setShareHistoryFileName(ShareActionProvider.DEFAULT_SHARE_HISTORY_FILE_NAME);22         /**23          * 添加跳转Intent24          */25         provide.setShareIntent(getShareIntent());26         return super.onCreateOptionsMenu(menu);27     }

3.设置Intent

 1     /** 2      * 获得跳转的Intent 3      *  4      * @return 5      */ 6     private Intent getShareIntent() { 7         Intent intent = new Intent(Intent.ACTION_SEND); 8         intent.setType("image/*"); 9         Uri uri = Uri.fromFile(getFileStreamPath("Share.png"));10         intent.putExtra(Intent.EXTRA_STREAM, uri);11         return intent;12     }

4.获得图片

 1     /** 2      * 将私有的图片转化为public,将raw中的图片,复制到 /data/data/cn.itcast.action/files/下 3      * 其中的Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。 4      * MODE_WORLD_READABLE:表示当前文件可以被其他应用读取; MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入 5      */ 6     private void copyPrivateRawResourceToPubliclyAccessibleFile() { 7         InputStream inputStream = null; 8         FileOutputStream outputStream = null; 9         try {10             inputStream = getResources().openRawResource(R.raw.robot);11             outputStream = openFileOutput("Share.png",12                     Context.MODE_WORLD_READABLE | Context.MODE_APPEND);13             byte[] buffer = new byte[1024];14             int length = 0;15             try {16                 while ((length = inputStream.read(buffer)) > 0) {17                     outputStream.write(buffer, 0, length);18                 }19             } catch (IOException ioe) {20                 /* ignore */21             }22         } catch (FileNotFoundException fnfe) {23             /* ignore */24         } finally {25             try {26                 inputStream.close();27             } catch (IOException ioe) {28                 /* ignore */29             }30             try {31                 outputStream.close();32             } catch (IOException ioe) {33                 /* ignore */34             }35         }36     }

 

0 0
原创粉丝点击