精华内容
下载资源
问答
  • 主要介绍了python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例,需要的朋友可以参考下
  • VC++实现的切换按钮控件源码

    热门讨论 2013-01-23 14:09:21
    VC++实现的切换按钮控件源码,用一个按钮实现两个选项的切换,带切换动画,类似于开关按钮。自绘实现。
  • C#中英文切换,实现菜单,工具栏,按钮控件的中英文切换
  • 一个支持多风格切换的VB按钮控件实例,支持11种按钮风格的切换,每种的风格都挺漂亮简洁,按钮上还带有气泡提示效果,大大增强了按钮的功能。包括的风格有Java风格、Office XP风格、Windows xp风格、苹果风格、水晶...
  • 主要为大家详细介绍了android实现点击按钮切换不同的fragment布局,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Vue.js 2切换/开关按钮 - 简单,漂亮,可自定义
  • 编译环境:WIN8 32位 VC++6.0下编译通过 最近在做一个项目,有一个小功能需要实现,即回车切换控件...主要实现了回车切换控件焦点,BUTTON等其它控件功能不影响。 作者:依星(邮箱airen3339@163.com) 2016-5-18
  • 一个酷炫的日间夜间模式切换按钮,于是就动手写了仿写了一个安卓版本的。
  • 本文主要介绍ImageButton控件的基础使用方法,该控件类似Button控件,但又比Button丰富,下面看它的具体使用。
  • ImageSwitcher类是ViewSwitcher类的子类,它实现的效果是在完成ImageView的切换并且带有动画效果。要使用这个类需要以下两个步骤: 1)为ImageSwitcher类提供一个ViewFactory,该ViewFactory生成的View组件必须是...
  • 也许看到样式后,有人说... 这里不是讲单独的两个按钮组合,而是封装成一个自定义的组合控件,是一个整体。下面就开始讲组合控件的实现,重要的步骤与思想,实现举一反三,大致思想如下: 第一步:创建一个view_title_b


    QQ图片20150605085003 
     

    也许看到样式后,有人说:这不是两个Button 吗?对,是两个Button没有错。实际情况中,这个Button 是有圆角的。就如左边一个一样。点击的效果就是,点击后,切换颜色,点击不同的按钮完成不同的功能。 这里不是讲单独的两个按钮组合,而是封装成一个自定义的组合控件,是一个整体。下面就开始讲组合控件的实现,重要的步骤与思想,实现举一反三,大致思想如下:
    第一步:创建一个view_title_button.xml布局文件,当然名字可以自己命名,布局内容就是如同效果图一样,两个按钮的组合布局,代码如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?xml version= "1.0" encoding= "utf-8" ?>
    <LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
         android:layout_width= "match_parent"
         android:layout_height= "match_parent"
         android:orientation= "vertical" >
     
         <RelativeLayout
             android:id= "@+id/rl_title_button"
             android:layout_width= "match_parent"
             android:layout_height= "wrap_content"
             android:gravity= "center_horizontal" >
     
             <Button
                 android:id= "@+id/btn_left"
                 android:layout_width= "140dp"
                 android:layout_height= "35dp"
                 android:layout_centerVertical= "true"
                 android:textColor= "@color/white"
                 android:background= "@drawable/left_button_click_shape"
                 android:text= "发布信息" />
     
             <Button
                 android:id= "@+id/btn_right"
                 android:layout_width= "140dp"
                 android:layout_height= "35dp"
                 android:layout_centerVertical= "true"
                 android:textColor= "@color/kuaixiu_blue"
                 android:layout_toRightOf= "@+id/btn_left"
                 android:background= "@drawable/right_button_null_click_shape"
                 android:text= "查看发布" />
         </RelativeLayout>
    </LinearLayout>

    其中的left_button_click_shape与right_button_null_click_shape的样式代码如下。放在drawable 文件夹的下面:同样代码依次如下;

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version= "1.0" encoding= "utf-8" ?>
    <shape xmlns:android= "http://schemas.android.com/apk/res/android" >
         <corners
             android:bottomLeftRadius= "5dp"
             android:bottomRightRadius= "0dp"
             android:topLeftRadius= "5dp"
             android:topRightRadius= "0dp" />
         <solid android:color= "#157EFB" />
    </shape>

    第二个Xml文件内容:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version= "1.0" encoding= "utf-8" ?>
    <shape xmlns:android= "http://schemas.android.com/apk/res/android" >
         <corners
             android:bottomLeftRadius= "0dp"
             android:bottomRightRadius= "5dp"
             android:topLeftRadius= "0dp"
             android:topRightRadius= "5dp" />
         <solid android:color= "#157EFB" />
    </shape>

    第二步:创建一个Java文件,TitleButton类。让这个类继承LinearLayout或者RelativeLayout 都行,然后实现其构造方法,一般三个。具体操作代码所示:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    public class TitleButton  extends LinearLayout {
         private RelativeLayout mRlay;
         private Button mLeft;
         private Button mRight;
         private OnLeftClickListener onLeftClickListener;
         private OnRightClickListener onRightClickListener;
         public TitleButton(Context context) {
             super (context);
             init();
         }
         public TitleButton(Context context, AttributeSet attrs) {
             super (context, attrs);
             init();
         }
         public TitleButton(Context context, AttributeSet attrs,  int defStyle) {
             super (context, attrs, defStyle);
             init();
         }
         public void init() {
             View view = View.inflate(getContext(), R.layout.view_title_button,  this );
             mLeft = (Button) view.findViewById(R.id.btn_left);
             mRight = (Button) view.findViewById(R.id.btn_right);
             mRlay = (RelativeLayout) view.findViewById(R.id.rl_title_button);
     
             mLeft.setOnClickListener( new OnClickListener() {
                 @SuppressLint ( "NewApi" )
                 @Override
                 public void onClick(View v) {
                     if (onLeftClickListener !=  null ) {
                         onLeftClickListener.onLeftClickListener();
                     }
                     mRight.setBackground(getResources().getDrawable(R.drawable.right_button_null_click_shape));
                     mRight.setTextColor(getResources().getColor(R.color.kuaixiu_blue));
                     mLeft.setBackground(getResources().getDrawable(R.drawable.left_button_click_shape));
                     mLeft.setTextColor(getResources().getColor(R.color.white));
     
                 }
             });
             mRight.setOnClickListener( new OnClickListener() {
                 @SuppressLint ( "NewApi" )
                 @Override
                 public void onClick(View v) {
                     if (onRightClickListener !=  null ) {
                         onRightClickListener.onRightClickListener();
                     }
                     mLeft.setBackground(getResources().getDrawable(R.drawable.left_button_no_click_shape));
                     mLeft.setTextColor(getResources().getColor(R.color.kuaixiu_blue));
                     mRight.setBackground(getResources().getDrawable(R.drawable.right_button_click_shape));
                     mRight.setTextColor(getResources().getColor(R.color.white));
                 }
             });
         }
         public Button getLeftButton() {
             return mLeft;
         }
         public Button getRightButton() {
             return mRight;
         }
         /**
          * 返回左边按钮点击回调
          *
          */
         public interface OnLeftClickListener {
             public void onLeftClickListener();
         }
         /**
          * 返回右边按钮点击回调
          *
          */
         public interface OnRightClickListener {
             public void onRightClickListener();
         }
        //回调接口
         public void setOnLeftClickListener(OnLeftClickListener onLeftClickListener) {
             this .onLeftClickListener = onLeftClickListener;
         }
     
         public void setOnRightClickListener(
                 OnRightClickListener onRightClickListener) {
             this .onRightClickListener = onRightClickListener;
         }
    }

    如上代码:逐步解释,首先三个构造方法,一般直接覆写即可,没有特殊要求,但需要注意的是,下面的 init() 方法一定要在每个构造方法里调用。否则页面加载不出来。
    下面就讲解 init() 的方法,

    1
    View view = View.inflate(getContext(), R.layout.view_title_button,  this );

    这行代码需要注意的地方是: 传入的参数 :最后一个参数,一定是 this而不是null,要不布局也是加载不出来的。视图加载出来以后,则是控件,与布局的实例化,并且为其添加对应的点击事件。没有什么可说的,点击事件里面,就是按钮背景与字体颜色的改变。
    如果你想实现,简单的切换,变色的效果,简单的点击事件的话,代码写到这,也就够了。但是实际情况中,我们点击按钮不可能只是颜色背景的改变,而是请求服务器啊,做一些Ui的操作啊。这就需要想别的办法了。
    下面讲到的是,如何将左右两个按钮的点击事件暴露到Activity里面,从而实现主要的功能。
    在最前面的时候,会发现,我们定义了两个响应事件

    1
    2
         private OnLeftClickListener onLeftClickListener;
    private OnRightClickListener onRightClickListener;

    并为其创建set方法,同时创建左右按钮点击事件对应的接口。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
         /**
      * 返回左边按钮点击回调
      */
    public interface OnLeftClickListener {
         public void onLeftClickListener();
    }
    /**
      * 返回右边按钮点击回调
      */
    public interface OnRightClickListener {
         public void onRightClickListener();
    }

    同时在左右按钮的点击事件里,将此接口调用,就能在外面实现点击事件的方法了。这个自定义组合控件到此就结束了。那么怎么使用呢。
    首先说在布局文件里面:

    1
    2
    3
    4
    5
    6
    <cn.zmit.customelayout.widget.TitleButton
         android:id= "@+id/btn"
         android:layout_width= "match_parent"
         android:layout_height= "wrap_content"
         android:layout_marginTop= "20dp" >
    </cn.zmit.customelayout.widget.TitleButton>

    就是所在的包名,加类名。在activity里面,这样使用,直接加载布局,实例化

    1
    2
    private TitleButton mTBtn;
    mTBtn = (TitleButton) findViewById(R.id.btn);

    要想实现点击操作事件则这样使用即可:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    mTBtn.setOnLeftClickListener( new OnLeftClickListener() {
     
                 @Override
                 public void onLeftClickListener() {
                     Toast.makeText(EditTextActivity. this "左边" 0 ).show();
     
                 }
             });
             mTBtn.setOnRightClickListener( new OnRightClickListener() {
     
                 @Override
                 public void onRightClickListener() {
                     Toast.makeText(EditTextActivity. this "右边" 0 ).show();
     
                 }
             });

    这就是连个按钮的点击事件,以上的自定义组合控件大概就是这样了。因为项目需要多次使用这样的控件,就封装了一整的,直接调用即可。也讲完了,大致思路,理一下,就是:首先创建想要封装的布局文件,然后继承类中,进行简单的点击效果的实现,或者更为复杂的效果也行,最后将要点击的控件,用接口,回调机制。实现就可以了。希望同学举一反三。自定义需要的复合控件。

    本文永久地址:http://blog.it985.com/11945.html
    本文出自 IT985博客 ,转载时请注明出处及相应链接。

    展开全文
  • 一个android 导航按钮切换动画。
  • 点击按钮时,切换星座图片点击星座图片时,循环切换图片
  • jquery马赛克焦点图特效,大图下边的方格按钮可控制焦点图切换切换时候对应的文字说明一并切换,适合用于游戏站、图上站和产品站,大图更漂亮,切换更新颖,切换效果貌似马赛克,但又不同于马赛克。
  • 大彩串口屏控件文档:如何使用按钮控件:按钮,如同生活中的开关一样,按下即可以实现其控制的作用。不同的按钮,都有其不同的用途,这里将介绍按钮的使用及其实现的一些复合功能。根据按钮的触控用途可分为五种:...
  • NULL 博文链接:https://topmanopensource.iteye.com/blog/1594858
  • 简单的验证密码登录。以及按钮状态切换。密码从txt文件读取。以便修改密码。顺便练习vc++下的文件读写。
  • HACK:历史最高在线纪录多语言编码切换多账户保存密码在线信息更新方式扩展XOOPS内码编程语言源码高亮现实W3C CSS 按钮
  • Xtreme Toolkit Pro是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、...

    Xtreme Toolkit Pro是MFC开发中最全面界面控件套包,它提供了Windows开发所需要的11种主流的Visual C++ MFC控件,包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Report Control、Shortcut Bar、Syntax Edit、Skin Framework 和Task Panel。

    点击下载最新版Xtreme Toolkit Pro

    上一节中讲了编辑框的用法,本节继续讲解常用控件--按钮控件的使用。

    按钮控件简介

    按钮控件包括命令按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)等。命令按钮就是我们前面多次提到的狭义的按钮控件,用来响应用户的鼠标单击操作,进行相应的处理,它可以显示文本也可以嵌入位图。单选按钮使用时,一般是多个组成一组,组中每个单选按钮的选中状态具有互斥关系,即同组的单选按钮只能有一个被选中。

    命令按钮是我们最熟悉也是最常用的一种按钮控件,而单选按钮和复选框都是一种比较特殊的按钮控件。单选按钮有选中和未选中两种状态,为选中状态时单选按钮中心会出现一个蓝点,以标识选中状态。一般的复选框也是有选中和未选中两种状态,选中时复选框内会增加一个“√”,而三态复选框(设置了BS_3STATE风格)有选中、未选中和不确定三种状态,不确定状态时复选框内出现一个灰色“√”。

    按钮控件会向父窗口发送通知消息,最常用的通知消息莫过于BN_CLICKED和BN_DOUBLECLICKED了。用户在按钮上单击鼠标时会向父窗口发送BN_CLICKED消息,双击鼠标时发送BN_DOUBLECLICKED消息。

    按钮控件的创建

    MFC提供了CButton类封装按钮控件的所有操作。

    之前的教程中,我们是在对话框模板上直接添加的按钮控件资源,但某些特殊情况下需要我们动态创建按钮控件,即通过CButton类的成员函数Create来创建按钮。下面是Create函数的原型:

    virtual BOOL Create(
    LPCTSTR lpszCaption,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID
    );

    参数说明:

    lpszCaption:指定按钮控件显示的文本。

    dwStyle:指定按钮控件的风格,可以设置为以下按钮风格的任意组合。

    BS_AUTOCHECKBOX :同BS_CHECKBOX,不过单击鼠标时按钮会自动反转
    BS_AUTORADIOBUTTON: 同BS_RADIOBUTTON,不过单击鼠标时按钮会自动反转
    BS_AUTO3STATE :同BS_3STATE,不过单击按钮时会改变状态
    BS_CHECKBOX:指定在矩形按钮右侧带有标题的选择框
    BS_DEFPUSHBUTTON:指定默认的命令按钮,这种按钮的周围有一个黑框,用户可以按回车键来快速选择该按钮
    BS_GROUPBOX:指定一个组框
    BS_LEFTTEXT:使控件的标题显示在按钮的左边
    BS_OWNERDRAW:指定一个自绘式按钮
    BS_PUSHBUTTON:指定一个命令按钮
    BS_RADIOBUTTON:指定一个单选按钮,在圆按钮的右边显示正文
    BS_3STATE:同BS_CHECKBOX,不过控件有3 种状态—选择、未选择和变灰

    当然,除了以上列出的风格,一般还会为按钮设置WS_CHILD、WS_VISIBLE和WS_TABSTOP等风格,WS_TABSTOP风格使按钮控件具有tab停止属性,即按tab键切换焦点控件时能够将焦点停在按钮控件上。创建一组单选按钮时,第一个按钮的风格应设置为WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_GROUP|BS_AUTORADIOBUTTON,其他单选按钮的风格应为WS_CHILD|WS_VISIBLE|BS_AUTORADIOBUTTON,不包含WS_TABSTOP和WS_GROUP。

    在对话框模板上直接添加按钮控件时,它的属性中包含了上述风格,例如,复选框的Tri_state属性实际上代表的就是BS_3STATE风格。

    剩下的三个参数与静态文本框的Create函数中的相应参数类似。

    CButton类的主要成员函数

    下面是CButton类的一些主要的成员函数,至于其他的函数大家可以在MSDN中查看。

    HBITMAP SetBitmap(HBITMAP hBitmap);

    设置要在按钮中显示的位图。参数hBitmap为位图的句柄。返回值为按钮原来位图的句柄。

    HBITMAP GetBitmap( ) const;

    获取之前由SetBitmap函数设置的按钮位图的句柄。

    void SetButtonStyle(UINT nStyle,BOOL bRedraw = TRUE);

    设置按钮的风格。参数nStyle指定按钮的风格,bRedraw指定按钮是否重绘,为TRUE则重绘,否则不重绘,默认为重绘。

    UINT GetButtonStyle( ) const;

    获取按钮控件的风格。

    void SetCheck(int nCheck);

    设置按钮的选择状态。参数nCheck为0表示未选中状态,1表示选中状态,2表示不确定状态(仅用于复选框)。

    int GetCheck( ) const;

    获取按钮的选择状态。返回值的意义同SetCheck函数的nCheck参数。

    HCURSOR SetCursor(HCURSOR hCursor);

    设置要显示到按钮上的光标图。参数hCursor指定了光标的句柄。返回值为按钮原来光标的句柄。

    HCURSOR GetCursor( );

    获取之前由SetCursor设置的光标的句柄。

    HICON SetIcon(HICON hIcon);

    设置要在按钮上显示的图标。参数hIcon指定了图标的句柄。返回值为按钮原来图标的句柄。

    HICON GetIcon( ) const;

    获取之前由SetIcon设置的图标的句柄。

    void SetState(BOOL bHighlight);

    设置按钮的高亮状态。参数bHighlight指定按钮是否高亮显示,非0则高亮显示,否则取消高亮显示状态。

    UINT GetState( ) const;

    获取按钮控件的选择状态、高亮状态和焦点状态。我们可以通过将返回值与各个掩码相与来获得各种状态值,掩码与对应的相与结果说明如下:

    掩码0x0003:用来获取单选按钮或复选框的状态。相与结果为0表示未选中,1表示被选中,2表示不确定状态(仅用于复选框)。
    掩码0x0004:用来判断按钮是否是高亮显示。相与结果为非0值表示按钮是高亮显示的。当单击按钮并按住鼠标左键时,按钮会呈高亮显示。
    掩码0x0008:相与结果为非零值表示按钮拥有输入焦点。

    下面再列出几个继承自CWnd类的成员函数,通过它们获取或设置按钮控件的状态非常方便,只需要知道按钮的ID。

    void CheckDlgButton(int nIDButton,UINT nCheck);

    用来设置按钮的选择状态。参数nIDButton指定了按钮的ID。nCheck的值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状态(仅用于复选框)。

    UINT IsDlgButtonChecked(int nIDButton) const;

    返回复选框或单选按钮的选择状态。返回值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状态(仅用于复选框)。

    void CheckRadioButton(int nIDFirstButton,int nIDLastButton,int nIDCheckButton);

    用来选择组中的一个单选按钮。参数nIDFirstButton指定了组中第一个按钮的ID,nIDLastButton指定了组中最后一个按钮的ID,nIDCheckButton指定了要选择的按钮的ID。

    int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);

    用来获得一组单选按钮中被选中按钮的ID。参数nIDFirstButton 说明了组中第一个按钮的ID,nIDLastButton 说明了组中最后一个按钮的ID。

    另外,CWnd类的成员函数GetWindowText()、SetWindowText()等也可以用来获取或设置按钮中显示的文本。

    关于按钮控件Button、Radio Button和Check Box的使用基础就介绍到此。

     

    转载自:http://www.jizhuomi.com/software/182.html

    展开全文
  • MySwitchView:小米3计算器开关控件原始码,Android的切换按钮
  • https://blog.csdn.net/u010780613/article/details/53883634 po一张自己做的切换界面框架:

    https://blog.csdn.net/u010780613/article/details/53883634
    po一张自己做的切换界面框架:
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • [QT]实现Tab键切换控件的两种方式及禁止Tab切换的简单方法,详细信息内容见博客:https://blog.csdn.net/humanking7/article/details/80697667
  • 源码MBXPageViewController,带有按钮控件的UIPageController,非常整洁、简单以及快速。该项目通过三种形式展示页面之间的切换,比如导航栏上的多个tab切换、页面左右两端箭头指示切换,以及使用分段控件。 测试...
  • OpenLayers 3 之 切换图层控件

    千次阅读 2015-11-27 12:15:37
    在 openlayers 2中,是默认有切换图层控件的,但是由于某种原因,openlayers 3中并没有默认实现,但却给我们很容易扩展的基类(ol.control.Control),我们可以自定义实现,并不是很难,这我会在其他文章中讲解。...

          在 openlayers 2中,是默认有切换图层控件的,但是由于某种原因,openlayers 3中并没有默认实现,但却给我们很容易扩展的基类(ol.control.Control),我们可以自定义实现,并不是很难,这我会在其他文章中讲解。这篇文章中,我利用一个 GitHub 中的一个开源项目(这个项目就是扩展了ol.control.Control,自定义了切换图层控件),添加切换图层控件,并探索其用法。

          具体的原理及其实现在这篇文章中我就不讲了,想看怎么具体实现的,可以期待一下我的下一篇文章,主要分析怎么继承 ol.control.Control 类,并自定义自己的控件,初定以切换图层控件为例。

    GitHub已有的“轮子”

          在发现 openlayers 3中并没有默认的图层切换控件时,首先想到看看有没有人实现过呢?自己造轮子,虽然有成就感,但是会投入更多的时间成本和精力,在生产环境中,这往往不允许。如果有人实现过,我就可以借鉴一下,不必自己实现,但是并不一定符合自己的应用环境,对此我们了解其实现,按照自己的需求进行修改,当然我们要注意其遵守的开源协议。

          搜索 GitHub ,已经有一个项目实现了我们需要的控件,地址在这里: ol3-layerswitcher 。下载好最新的版本,解压,src子文件夹中有其 javascript 和 css 文件,分别在网页中相应位置添加引用。

    这里写图片描述

    <!DOCTYPE>
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <title>ol3-layers-witcher</title>
      <link rel="stylesheet" href="css/ol.css" type="text/css">
      <link rel="stylesheet" href="css/common-setting.css" type="text/css">
    </head>
    <body style="margin:0 0 0 0; padding:0 0 0 0;">
        <div id="map" style="width: 100%; height: 100%;"></div>
    
    <script type="text/javascript" src="js/ol.js"></script>
    <script type="text/javascript" src="js/ol3-layerswitcher.js"></script>
    <script type="text/javascript" src="layer-switcher.js"></script>
    </body>
    </html>

    使用方法

    图层title属性

          要使用该方法,必须在每个图层添加一个 title 属性,ol3-layerswitcher 会根据图层的 title 属性的值,显示在 layerswitcher 控件中。如下示例,“天地图路网”这几个字会显示到 layer-switcher 中:

    var tian_di_tu_road_layer = new ol.layer.Tile({
        title: "天地图路网",
        source: new ol.source.XYZ({
            url: "http://t4.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}"
        })
    });

    layer-switcher

    tipLabel 属性

          layer-switcher 相对于 ol.control.Control基类,只添加了一个属性 – tipLabel,这个属性是一个字符串,默认是 Legend,当鼠标位于控件之上时,会有提示文字,就是这里的 tipLabel的值,其实这个值是通过设置 html button元素的title 属性实现的。如我把 tipLabel设置为 切换图层,那么在鼠标置于图标时会有下面的效果:

    tipLabel属性效果

    调整控件样式

          控件没有展开的时候,默认图标是 openlayers 3 的图标,如果我们想换一个,就要修改其在 CSS 文件中(ol3-layerswitcher.css)的 background-image 定义,如下图:

    背景图片

          指定的值是 base64 格式的图片 url,我们可以使用 HTML5 的 canvas API 将普通图片转换成 base64 表示形式,如下的我写的函数就是转换普通的图片为 base64 格式的表示,并返回。使用时,将待转换的图片的url路径,想要输出的图片尺寸,传递给函数作为参数:

    function convertImageToBase64(url, height, width){
        var img = new Image();
        img.crossOrigin = 'Anonymous';
        img.onload = function(){
            var canvas = document.createElement('CANVAS');
            var ctx = canvas.getContext('2d');
            var dataURL;
            canvas.height = height;
            canvas.width = width;
            ctx.drawImage(this, 0, 0, height, width);
            dataURL = canvas.toDataURL('image/png');
            return dataURL;
        };
        img.src = url;
    }

          还有一些其它的属性,比如控件默认放置的位置,也在 ol3-layerswitcher.css 中定义,控件使用的 CSS 绝对定位,默认离右边 0.5 em,离顶部 3.5 em,我们可以修改 top、right,或者增加 bottom、left 等属性来修改放置的位置。

    .layer-switcher {
        position: absolute;
        top: 3.5em;
        right: 0.5em;
        text-align: left;
    }

    总结

          讲到这里,你已经基本会用了吧!当然,如果你想要进一步修改其样式,就要深入的了解其 CSS 文件(你应该有一点CSS基础知识),对其进行更深入的定制化;如果你想扩展或自定义这个控件的功能或者增加其监听的事件,那么你需要研究其实现:ol3-layerswitcher.js。使用一个开源项目,不是说,你就不必关心怎么去实现了,而是应该了解其实现原理,否则,慢慢就变成了‘井底之蛙’,别人有,你会用,别人没有,你就没办法了。

    文章中例子的完整代码,我放在了 GitHub 中,想看的朋友可以到 这个链接 看一下: https://github.com/QingyaFan/openlayers3-examples

    好的,就写到这里,有什么问题,可以在文章下面留言或者给我发邮件。

    展开全文
  • 05 地图添加底图切换控件

    千次阅读 2018-09-11 22:04:00
    本文讲述如何在地图上添加地图切换控件。通过底图切换控件,我们可以实现当前地图和的地图之间的一个切换,效果如下:     如上所示,通过右上角的底图切换控件可以实现两地图之间的切换显示,具体操作如下...
  • 用Expression Studio弄了大半天的wpf。...其中包含了过渡切换背景还有一个自定义的按钮。还外带了微软官方的一个3d动画Demo。有人说拖控件的程序员不是合格的程序员。咱可以不是程序员,咱可以是设计师,UI设计师。
  • 两个左右按钮,左边按钮显示上一张,右边按钮显示下一张,利用文件目录和list实现加载路径。代码是VS2015+Qt5.7实现的.也可以看代码转换成Qt Creator来运行。
  • 常用控件:按钮控件Button、Radio Button和Check Box  本节讲解常用控件--按钮控件的使用。 一. 按钮控件简介  按钮控件包括命令按钮(Button)、单选按钮(Radio Button)和复选框(Check Box)等。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 73,365
精华内容 29,346
关键字:

切换按钮控件