Android:绘制一个button作为微调

我有一个自定义的android视图,它扩展了“button”,并作为一个多级微调 – 当它被按下时,它显示一系列微调对话框,允许用户改进他们的select。 在这种情况下,它允许用户select他们想要拾取发生的日子,然后小时,然后分钟(以5分钟间隔)。 当对话框不活动时,button上显示当前select的文本说明。

我想直观地指出,用户可以通过按下button来改变select,并认为微调的外观正是我所需要的。 我希望外观与设备上的其他旋钮相同,并且能够轻松地更改button上的文字,但是我不确定如何实现这一点,而不会使它变得糟糕。 我应该如何将button显示为与设备上的其他旋钮一致的微调像图标?

Related of "Android:绘制一个button作为微调"

这是我设法画一个像Spinner一样的button:

<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" style="?android:attr/spinnerStyle" /> 

而已!

更新

类似下面的东西也应该工作:

 <style name="SpinnerButtonStyle" parent="android:Widget.Holo.Spinner"> <item name="android:textColor">@color/entry_field</item> <item name="android:textAppearance">?android:attr/textAppearanceMedium</item> </style> 

有关更多样式,请查看SDK,例如sdk/platforms/android-18/data/res/values/styles.xml

我find了解决我的问题。 在我的button的构造函数中,我将背景可绘制资源设置为“btn_dropdown”。

 public DateAndTimePicker(Context context) { super(context); this.setBackgroundResource(android.R.drawable.btn_dropdown); } 

它看起来与微调button相同,button行为没有改变,并且button文本居中正确。

这是我像一个微调画图button的解决scheme:

 <Button android:id="@+id/my_button" android:layout_width="match_parent" android:layout_height="wrap_content" android:paddingLeft="12dp" android:gravity="center_vertical|left" android:enabled="true" android:text="@string/my_button_text" android:textColor="@color/my_button_color" style="@style/MyButton" /> 

这是我res / values / styles.xml的一部分:

 <style name="MyButton" parent="@android:style/Widget.Spinner"> </style> 

这是我res / values-v14 / styles.xml的一部分:

 <style name="MyButton" parent="@android:style/Widget.DeviceDefault.Light.Spinner"> </style> 

这个XML布局使button看起来像一个微调。

 <!-- **** Button styled to look like a spinner **** --> <Button android:id="@+id/btn_category" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@android:drawable/btn_dropdown" android:gravity="center_vertical|left" android:textSize="18sp" /> 

你可以在你的button上定义android:background属性来使用一个看起来像微调控件的drawable。 我通过为微调器创build了一个9-补丁图像,将它放在我的res / drawable文件夹中,然后为我的自定义微调button添加一个样式:

 <style name="DialogSpinner"> <item name="android:background">@drawable/dlg_spinner_background</item> <item name="android:textColor">#919090</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_marginTop">2px</item> <item name="android:layout_marginBottom">2px</item> </style> 

对于button,将style属性添加到布局的XML布局:

 <Button android:id="@+id/okButton" style="@style/DialogSpinner" android:textColor="#a6a2a2" android:text="something" />