我想为我的应用程序实现一个三向滑动按钮。在第一个位置它应该显示一种颜色,在中心它应该显示另一种颜色,在结束位置它应该再次改变颜色。在这里,我给出了这些图像。



我如何实现这一点?
发布于 2012-03-19 21:33:54
这实际上看起来像是搜索栏的一个扩展。
为了实现这种滑块,我会创建一个扩展搜索栏的类。在构造函数中,我将使用.setMax(2);,这意味着搜索栏只有3个位置/步骤。
然后,在默认实现中,我会插入一个seekbar.OnChangeListener()。在pogressChanged(...)方法中,使用.setBackgroundDrawable(...)切换背景图像资源,如果需要,使用.setThumb(...)将拇指更改为您想要的图像。
如果您甚至想要更改滑块的位置,您可以实现一个单击事件处理,然后使用.setProgress();更改滑块的位置
这是一个非常容易处理和快速完成的实现,因为它只需要几行代码。
发布于 2017-11-28 18:19:24
这可以使用RadioGroup来实现。
您必须在RadioGroup中定制RadioButtons,如下所示:
<RadioGroup
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_toggler"
android:orientation="horizontal"
android:padding="4dp">
<RadioButton
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button1_background"
android:button="@null"
android:checked="true" />
<RadioButton
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button2_background"
android:button="@null"
android:checked="false" />
<RadioButton
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button3_background"
android:button="@null"
android:checked="false" />
</RadioGroup>drawable/button1_background.xml .xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn1checked"
android:state_checked="true" />
<item
android:drawable="@drawable/btn1unchecked"
android:state_checked="false" />
</selector>drawable/button2_background.xml .xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn2checked"
android:state_checked="true" />
<item
android:drawable="@drawable/btn2unchecked"
android:state_checked="false" />
</selector>drawable/button3_background.xml .xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/btn3checked"
android:state_checked="true" />
<item
android:drawable="@drawable/btn3unchecked"
android:state_checked="false" />
</selector>所有3个按钮都使用相关的可绘制资源。现在,您可以处理RadioGroup检查更改时的事件。
发布于 2012-03-19 21:13:36
创建一个新视图并覆盖onPaint()方法。
在A、B或C位置(最左、最中、最右)绘制“滑块”位图,然后设置视图当前所在的A、B、C位置的背景色。使用Canvas.drawBitmap() - http://developer.android.com/reference/android/graphics/Canvas.html#drawBitmap(android.graphics.Bitmap绘制位图
在绘制滑块位图之前,可以使用- Canvas.drawRGB() 绘制背景颜色
使用某种事件处理来更改位置,例如实现onClickListener并侦听点击。当你得到一个点击时,只需在位置上加1,这样A -> B,B -> C,C -> A等等。
https://stackoverflow.com/questions/9770230
复制相似问题