Android-RadioButton实践
实现效果图
实现原理
外面是一个RadioGroup,根据要显示的数据模型,用addView()方法把RadioButton动态添加到RadioGroup里面。
注意RadioGroup的直接子控件是RadioButton
示例代码
RadioGroup
123456789101112131415161718192021<RadioGroupandroid:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/white"android:orientation="vertical"android:divider="@drawable/shape_divider_neworder_radiogroup"android:showDividers="end|middle"android:dividerPadding="8dp"/>```* shape_divider_neworder_radiogroup```html<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><solid android:color="#f2f2f2" /><stroke android:width="0dp" android:color="@android:color/transparent" /><size android:width="100dp" android:height="1dp" /><padding android:right="0dp"android:left="10dp"/></shape>RadioButton
1234567891011121314151617181920212223242526272829303132333435363738<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="100dp"android:button="@null"android:paddingLeft="10dp"android:paddingRight="10dp"android:textColor="#8c8c8c"android:textSize="12sp"android:layout_marginTop="4dp"android:layout_marginBottom="4dp"/>```* 添加控件代码```javaDrawable drawableLeft,drawableRight;drawableLeft = new BitmapDrawable(bitmap);drawableLeft.setBounds(0,0,drawableLeft.getMinimumWidth(),drawableLeft.getMinimumHeight());drawableRight =getResources().getDrawable(R.drawable.selector_neworder_radiobut);drawableRight.setBounds(0,0,drawableRight.getMinimumWidth(),drawableRight.getMinimumHeight());radiobutton.setCompoundDrawables(drawableLeft,null,drawableRight,null);radioGroupTransportCompany.addView(radiobutton);