美文网首页
菜单项item转ImageView

菜单项item转ImageView

作者: lisx_ | 来源:发表于2018-07-26 17:57 被阅读0次

    今天说一个menu菜单项item转其他view的问题, 之前只转过SearchView,今天试了下别的view也是可以的.
    话不多说,见如下xml文件

    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
        <item
            android:id="@+id/item1"
            android:title="@string/x"
            app:actionViewClass="android.widget.ImageView"
            app:showAsAction="always" />
    
    </menu>
    

    我们的目的就是要将这个item1转换为ImageView使用.所以添加了actionViewClass属性.在activity中,通过创建menu菜单获取到itme,然后转为ImageView.

    由于类型发生了变化, 该image和其他的item不一样,需要单独处理:

    1. 需要自定义params.
    2. 在onOptionsItemSelected中也是检测不到它的点击的,需要自己添加点击事件.
        @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
            inflater.inflate(R.menu.menu_month_fragment, menu);
            MenuItem menuItem = menu.findItem(R.id.itme1);
            ImageView image = (ImageView) menuItem.getActionView();
            
            // 需要自定义image属性
            LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
                    dpToPx(24), dpToPx(24));
            params.bottomMargin = dpToPx(10);
            image.setLayoutParams(params);
            
            // 添加点击事件
            image.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                      ...
                }
            });
            
            // 加载图片
            Glide.with(getContext()).load(url).into(image);
        }
        
        public static int dpToPx(float dpVal) {
            return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dpVal, getDisplayMetrics());
        }
        
        public static DisplayMetrics getDisplayMetrics() {
            return mContext.getResources().getDisplayMetrics();
        }
    

    相关文章

      网友评论

          本文标题:菜单项item转ImageView

          本文链接:https://www.haomeiwen.com/subject/zjgbmftx.html