xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ffffff" > <LinearLayout android:background="@drawable/dialog_bg" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_marginTop="20dp" android:textSize="20dp" android:textColor="#000009" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="主题布局"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_marginRight="10dp" android:layout_weight="1" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_hei" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/hei"/> <RadioGroup android:id="@+id/rg_one" android:layout_marginTop="-20dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_hei" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:checked="true" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="黑夜荧光"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_weight="1" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_lan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/lan"/> <RadioGroup android:id="@+id/rg_two" android:layout_gravity="center_horizontal" android:layout_marginTop="-20dp" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_lan" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="夜晚星空"/> </RadioGroup> </LinearLayout> </LinearLayout> <LinearLayout android:layout_marginBottom="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_weight="1" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_lv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/lv"/> <RadioGroup android:id="@+id/rg_san" android:layout_marginTop="-20dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_lv" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="夏日雨滴"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_qian" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/qian"/> <RadioGroup android:id="@+id/rg_si" android:layout_marginTop="-20dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_qian" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="和风旭日"/> </RadioGroup> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout>
效果图:
下面呢 就进入到如何实现单选效果了
首先呢,就是先找到各自的控件RadioGroup和RadioButton
然后,我们进行RadioButton的点击处理(不能进行RadioGroup的点击,虽然能实现效果,但是会出现需要点击来此才能触发点击事件)
在点击事件中进行处理:
rg2.clearCheck(); rg3.clearCheck(); rg4.clearCheck();
这样就可以实现我们的单选效果了
下面来上代码
xml文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#00ffffff" > <LinearLayout android:background="@drawable/dialog_bg" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_marginTop="20dp" android:textSize="20dp" android:textColor="#000009" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="主题布局"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_marginRight="10dp" android:layout_weight="1" android:layout_marginLeft="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_hei" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/hei"/> <RadioGroup android:id="@+id/rg_one" android:layout_marginTop="-20dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_hei" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:checked="true" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="黑夜荧光"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_weight="1" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_lan" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/lan"/> <RadioGroup android:id="@+id/rg_two" android:layout_gravity="center_horizontal" android:layout_marginTop="-20dp" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_lan" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="夜晚星空"/> </RadioGroup> </LinearLayout> </LinearLayout> <LinearLayout android:layout_marginBottom="20dp" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <LinearLayout android:layout_weight="1" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_lv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/lv"/> <RadioGroup android:id="@+id/rg_san" android:layout_marginTop="-20dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_lv" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="夏日雨滴"/> </RadioGroup> </LinearLayout> <LinearLayout android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:layout_weight="1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/image_qian" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/qian"/> <RadioGroup android:id="@+id/rg_si" android:layout_marginTop="-20dp" android:layout_gravity="center_horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content"> <RadioButton android:id="@+id/btn_qian" android:scaleX="0.7" android:scaleY="0.7" android:textSize="20dp" android:button="@drawable/check_style" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="和风旭日"/> </RadioGroup> </LinearLayout> </LinearLayout> </LinearLayout> </LinearLayout>
acticity中:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private RadioButton hei,lan,lv,qian; private RadioGroup rg1,rg2,rg3,rg4;
protected void onCreate(Bundle savedInstanceState) { hei= findViewById(R.id.btn_hei); lan= findViewById(R.id.btn_lan); lv= findViewById(R.id.btn_lv); qian= findViewById(R.id.btn_qian); rg1= findViewById(R.id.rg_one); rg2= findViewById(R.id.rg_two); rg3= findViewById(R.id.rg_san); rg4= findViewById(R.id.rg_si); hei.setOnClickListener(this); lan.setOnClickListener(this); lv.setOnClickListener(this); qian.setOnClickListener(this); }
@Override public void onClick(View v) { switch (v.getId()){ case R.id.btn_hei: rg2.clearCheck(); rg3.clearCheck(); rg4.clearCheck(); break case R.id.btn_lan: rg1.clearCheck(); rg3.clearCheck(); rg4.clearCheck(); break; case R.id.btn_lv: rg1.clearCheck(); rg2.clearCheck(); rg4.clearCheck(); break; case R.id.btn_qian: rg1.clearCheck(); rg2.clearCheck(); rg3.clearCheck(); break; } }
}
ok,这样就可以实现效果了