【问题标题】:Android: How to create slide (on/off) buttonAndroid:如何创建幻灯片(开/关)按钮
【发布时间】:2014-07-23 15:47:19
【问题描述】:

我想创建一个具有两种状态的滑动按钮(= 开关):开和关,因此用户必须按下按钮并滑动它以更改状态(类似于解锁滑块但不跨越整个屏幕)。你知道怎么做吗?我真的试图找到答案,但我没有成功。

非常感谢!

【问题讨论】:

  • 听起来像Switch control。这是 Ice Cream Sandwich (Android 4.0) 中的新功能,因此您无法在旧版本中使用它。但是由于源是昨天发布的,所以你可以看看它,看看它是如何完成的。除此之外,请查看custom components
  • 您可以使用切换按钮进行 2 种状态(开和关)
  • 4sat- 但我认为切换按钮不支持移动。还是我错了?
  • 我在此处放置了适用于 Android 2.2 的 Switch 小部件版本:github.com/BoD/android-switch-backport

标签: android button slider switch-statement slide


【解决方案1】:

//在你的布局设计中,下面一行

<RelativeLayout android:layout_width="wrap_content" android:id="@+id/rl_onoff"
    android:layout_height="wrap_content">
<ImageView android:id="@+id/on_btn" android:layout_width="80dp"  android:layout_height="40dp" android:src="@drawable/on_btn" android:visibility="visible"></ImageView>
<ImageView android:id="@+id/off_btn" android:layout_width="80dp"  android:layout_height="40dp" android:src="@drawable/off_btn" android:visibility="invisible"></ImageView>
   </RelativeLayout>

//在你的活动中调用这个

ImageView mNotification_on_btn=(ImageView)findViewById(R.id.on_btn);
ImageView mNotification_off_btn=(ImageView)findViewById(R.id.off_btn);

    mNotification_on_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_on_btn.setVisibility(View.GONE);
                mNotification_off_btn.setVisibility(View.VISIBLE);
            }
        });
    mNotification_off_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                mNotification_off_btn.setVisibility(View.GONE);
                mNotification_on_btn.setVisibility(View.VISIBLE);
            }
        });

//这将像iphone风格一样切换开关按钮

【讨论】:

  • 这不会有“过渡”,它不会在两个状态之间滑动。此外,这是一个不错的选择!
  • 非常感谢,但正如已经注意到的那样,我需要两种状态之间的转换。我在youtube 上找到了一些视频,但我找不到代码:(
  • 我想,最好使用切换按钮然后使用两个 ImageView 并在代码中显示/隐藏它们。无论如何,两者都没有滑动过渡。
  • 工作得很好。谢谢。
  • 节省了我的时间。谢谢朋友。
【解决方案2】:

如果您的目标 SDK 高于 4.0(冰淇淋三明治),Switch component 似乎是最佳解决方案。因此,对于将面临同样问题的其他人来说,看看它。 :)

【讨论】:

    【解决方案3】:

    您可以通过使用复选框或切换按钮来实现此目的。下面是一个例子

    xml文件

     <CheckBox
            android:id="@+id/check_on_of"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:button="@drawable/chec_box_on_off"
           />
    

    可绘制的 chec_box_on_off 文件是

     <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/check_box_on" android:state_checked="true"/>
    <item android:drawable="@drawable/check_box_off" android:state_checked="false"/>
    </selector>
    

    你会得到像关闭按钮,你也可以检查复选框是打开还是关闭。

    java代码是

     CheckBox check = (CheckBox)findViewById(R.id.check_on_of);
     check.isChecked();
    

    同样,您也可以使用 ToggleButton 实现此目的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2022-10-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多