【问题标题】:Analog FM radio like control模拟调频收音机控制
【发布时间】:2012-11-12 21:03:34
【问题描述】:

我想用普通的 EditText 控件 (inputType="numberDecimal") 来用我们都知道的模拟 FM 收音机的控件来输入一些十进制数字:

基本上你有一个整数序列,这个序列的一部分是可视化的。您指定一个 minValue 和 maxValue,currentValue 以某种方式突出显示。向左滑动应该增加显示的数字,向右滑动应该减少它们。

任何人都知道类似的东西是否已经在 android 中实现或有任何提示来实现它?

【问题讨论】:

    标签: android input numbers controls


    【解决方案1】:

    我看到的最相似的项目是Android Wheel

    使用权限有震动效果

    <uses-permission android:name="android.permission.VIBRATE" />
    

    要在当前布局中包含滚轮小部件,您应该在布局 xml 中添加以下行:

    <it.sephiroth.android.wheel.view.Wheel
    android:id="@+id/wheel"
    xmlns:sephiroth="http://schemas.android.com/apk/res/it.sephiroth.android.wheel"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    sephiroth:numRotations="6"
    sephiroth:ticks="28" />
    

    其中 numRotations 是轮子可以执行的最大旋转数,而 ticks 是轮子将显示的总刻度数。

    然后在您的活动中,您可以通过以下方式将 OnScrollListener 侦听器添加到轮子小部件:

    mWheel = (Wheel) findViewById( R.id.wheel );
    mWheel.setOnScrollListener( new OnScrollListener() {
    
    @Override
    public void onScrollStarted( Wheel view, float value, int roundValue ) {
    }
    
    @Override
    public void onScrollFinished( Wheel view, float value, int roundValue ) {
    }
    
    @Override
    public void onScroll( Wheel view, float value, int roundValue ) {
    }
    } );
    

    另一个可能有用的是DateSlider

    【讨论】:

    • 感谢您指出这两个项目!我今天忙于不同的事情,但明天将尽快查看两者的代码。这两个项目基本上都使用了我想在我的输入控件中拥有的功能,所以这是一个很好的起点。将报告,如果我在这方面取得任何进展...
    • 昨天终于有时间投资这个控件了。查看 DateSlider 实现正是我所需要的,代码有据可查且易于理解。现在我有了我想要的“数字输入控制”。再次感谢@Yul 指出这个项目。
    【解决方案2】:

    我认为没有内置功能。

    我在网上找到了类似的东西 - http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/

    要使其符合您的要求,您必须将其放在framelayout 中,并在中间放置一个显示数字的文本视图。

    框架布局 - http://developer.android.com/reference/android/widget/FrameLayout.html

    我没有深入阅读该教程,但我想通过将图像更改为水平刻度盘并更改onTouchListener,您将能够得到您想要的。

    如果您对此有任何疑问,我会尽力提供帮助

    【讨论】:

      【解决方案3】:

      查看 Wheel 小部件:http://code.google.com/p/android-wheel/

      它可能会做你想做的事。

      【讨论】:

      • 假设有横向样式;我不确定是否有。
      • 我认为 Wheel Widget 不支持水平样式,所以我先看看 Yul 突出显示的项目。 PS:我想要的控件不需要“轮形”,像卷尺那样的“线性形状”就足够了。控制输入​​值的fling手势是唯一的强制功能......
      猜你喜欢
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 2011-06-17
      • 2019-06-06
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多