2012-11-12 68 views
2

我想substitue正常的EditText控制(的inputType =「numberDecimal」),以輸入與控制一些十進制數,我們都從模擬FM無線電知道:模擬FM收音機等控制

enter image description here

基本上你有一個整數序列,這個序列的一部分是可視化顯示的。您指定minValue & maxValue,currentValue以某種方式突出顯示。向左滑動應增加顯示的數字,向右滑動應減少它們。

任何人都知道,如果類似的東西已經在android中實現或有任何提示來實現這個?

回答

2

最相似的項目,我看到是Android Wheel

Screenshot

它使用許可

<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是車輪可以執行的最大轉數,而tick是車輪將顯示的滴答總數。

然後在你的活動,你可以添加一個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 SS2

+1

感謝您指出兩個項目! 我今天忙於不同的事情,但會看看明天的代碼。 這兩個項目基本上都使用我想要的輸入控件中的功能,因此這是一個很好的起點。 請問,如果我對此有任何進展... – darksaga

+0

昨天終於有一段時間投入了這個控制。看看DateSlider的實現正是我所需要的,代碼有很好的記錄和易於理解。現在我有了我想要的'數字輸入控制'。 Thx再次@Yul指出這個項目。 – darksaga

1

我不認爲有一個內置的功能。

我也發現了類似網上的東西在這裏 - http://mobile.tutsplus.com/tutorials/android/android-sdk-creating-a-rotating-dialer/

爲了讓像你想要什麼,你將不得不出它在framelayout,並把一個TextView中顯示數字的中間。

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

我沒有經過太多深度的教程看,但我想由圖像改變成一個橫撥,並通過改變onTouchListener,你將能夠得到什麼你要。

如果你有關於這個要求,我會盡力幫助

0

查找到車輪的Widget有任何疑問:http://code.google.com/p/android-wheel/

它可能會做你想要什麼。

+0

這是假設有一個水平式的;我不確定有沒有。 –

+0

我不認爲Wheel Widget支持橫向風格,所以我會先看看Yul突出強調的項目。 PS:我想要的控件不需要「輪子形狀」,像捲尺一樣的「線性形狀」就足夠了。控制輸入​​值的投擲手勢是唯一的必備功能...... – darksaga