Gallery3d 学习笔记(19)

来源:互联网 发布:ubuntu 编译php 编辑:程序博客网 时间:2024/05/17 21:16

上次我们讲了单张图片的上下界面的显示和隐藏,已经左上角名字的刷新,现在我们讲一下分享以及右边的一堆菜单


他们涉及到一个类ShareActionProvider,这个类专门是用来用于分享的。界面在photo.xml中,整体是一个菜单


<menu xmlns:android="http://schemas.android.com/apk/res/android">    <item android:id="@+id/action_import"            android:title="@string/Import"            android:icon="@drawable/ic_menu_ptp_holo_light"            android:showAsAction="always|withText"            android:visible="false" />    <item android:id="@+id/action_share_panorama"            android:icon="@drawable/ic_menu_share_holo_light"            android:title="@string/share_panorama"            android:visible="false"            android:actionProviderClass="android.widget.ShareActionProvider"            android:showAsAction="ifRoom" />    <item android:id="@+id/action_share"                            ----分享菜单            android:icon="@drawable/ic_menu_share_holo_light"            android:title="@string/share"            android:visible="false"            android:actionProviderClass="android.widget.ShareActionProvider"            android:showAsAction="never" />    <item android:id="@+id/action_delete"                            ----删除菜单            android:icon="@drawable/ic_menu_trash_holo_light"            android:title="@string/delete"            android:visible="false"            android:showAsAction="never" />    <item android:id="@+id/action_slideshow"                         ----幻灯片菜单            android:icon="@drawable/ic_menu_slideshow_holo_light"            android:title="@string/slideshow"            android:showAsAction="never" />    <item android:id="@+id/action_edit"                               ----编辑菜单            android:title="@string/edit"            android:showAsAction="never"            android:visible="false" />    <item android:id="@+id/action_simple_edit"          android:title="@string/simple_edit"          android:showAsAction="never"          android:visible="false" />    <item android:id="@+id/action_rotate_ccw"            android:showAsAction="never"            android:title="@string/rotate_left" />    <item android:id="@+id/action_rotate_cw"            android:showAsAction="never"            android:title="@string/rotate_right" />    <item android:id="@+id/action_crop"            android:title="@string/crop_action"            android:showAsAction="never" />    <item android:id="@+id/action_trim"            android:title="@string/trim_action"            android:showAsAction="never" />    <item android:id="@+id/action_mute"            android:title="@string/mute_action"            android:showAsAction="never" />    <item android:id="@+id/action_setas"            android:title="@string/set_image"            android:showAsAction="never" />    <item android:id="@+id/action_details"            android:title="@string/details"            android:showAsAction="never" />    <item android:id="@+id/action_show_on_map"            android:title="@string/show_on_map"            android:showAsAction="never" />    <item android:id="@+id/print"          android:title="@string/print_image"          android:showAsAction="never" /></menu>

分享放在上面的确太拥挤,太难看了,决定除了详细信息其他全部放到下面去。


我们首先在xml中删除菜单,然后根据菜单ID在JAVA文件中删除对应的处理代码即可。

需要注意的是,剩下的菜单要改属性,因为不再是伸缩性的菜单

android:showAsAction="ifRoom"

android:icon="@drawable/ic_menu_details"   --自己要加一个新ICON



大家看到了没,所有的右边的菜单全部被删除了,只剩下一个按钮,这个按钮还是用的分享的按钮,但已经被我改成了详细信息的功能。


而详细信息的界面也很丑陋,



 显示详细信息的代码为showDetails


    private void showDetails() {        mShowDetails = true;        if (mDetailsHelper == null) {            mDetailsHelper = new DetailsHelper(mActivity, mRootPane, new MyDetailsSource());            mDetailsHelper.setCloseListener(new CloseListener() {                @Override                public void onClose() {                    hideDetails();                }            });        }        mDetailsHelper.show();    }


寻找DetailsHelper类中发现DialogDetailsView才是它的显示实现

    public DetailsHelper(AbstractGalleryActivity activity, GLView rootPane, DetailsSource source) {        mContainer = new DialogDetailsView(activity, source);    }

DetailsHelper在几个Page类中都是辅助使用,用以得知照片的详细信息。


0 0