Gallery3d 学习笔记(19)

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


他们涉及到一个类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类中都是辅助使用,用以得知照片的详细信息。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值