Android 基本控件的使用四(仿团购底部菜单App)(RadioGroup)
2016-04-15 08:15
309 查看
项目名称:仿团购底部菜单Appp
项目功能:通过点击按钮,使 RadioGroup 上面的TextView 的字题颜色 和 背景颜色发生变化
项目技术:使用 RadioGroup 的互斥的功能来实现的;RadioButton 里头字体颜色的变化和图标颜色的变化使用过 selector 来实现的
注意:给RadioGroup设置的监听为__ OnCheckedChangeListener
开发步骤:
1.写 selector.xml colors.xml
2.布局
3.声明控件
4.为控件设置监听
界面如下:
代码如下:
deal_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_deal_selected"
></item>
<item
android:drawable="@drawable/ic_tab_deal_unselected"
></item>
</selector>
nearyby_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_nearby_selected"
></item>
<item
android:drawable="@drawable/ic_tab_nearby_unselected"
></item>
</selector>
my_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_my_selected"
></item>
<item
android:drawable="@drawable/ic_tab_my_unselected"
></item>
</selector>
more_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_more_selected"
></item>
<item
android:drawable="@drawable/ic_tab_more_unselected"
></item>
</selector>
text_color_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"android:color="@color/main_color"></item>
<itemandroid:color="@color/default_tab_menu_text_color"></item>
</selector>
colors.xml
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<color
name="main_color">#FF6625</color>
<colorname="default_tab_menu_text_color">#999999</color>
</resources>
MainActivity.java
package cn.sophia.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
// 当点击radioButton 时候,图标颜色和字体也要发生相应的变化,TextVIew 的字体颜色和 背景颜色也发生相应的变化
public class MainActivity extends Activity {
// 声明控件
private RadioGroup rgTabmenu;
private TextView tvContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
rgTabmenu = (RadioGroup) findViewById(R.id.rg_tab_menu);
tvContent = (TextView) findViewById(R.id.tv_content);
// 为控件设置监听
rgTabmenu.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId) {
case R.id.rb_tab_menu_deal:
tvContent.setText("团购");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
break;
case R.id.rb_tab_menu_nearby:
tvContent.setText("附近");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_green_light));
break;
case R.id.rb_tab_menu_my:
tvContent.setText("我的");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_orange_light));
break;
case R.id.rb_tab_menu_more:
tvContent.setText("更多");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
break;
}
}
});
}
}
项目功能:通过点击按钮,使 RadioGroup 上面的TextView 的字题颜色 和 背景颜色发生变化
项目技术:使用 RadioGroup 的互斥的功能来实现的;RadioButton 里头字体颜色的变化和图标颜色的变化使用过 selector 来实现的
注意:给RadioGroup设置的监听为__ OnCheckedChangeListener
开发步骤:
1.写 selector.xml colors.xml
2.布局
3.声明控件
4.为控件设置监听
界面如下:
代码如下:
deal_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_deal_selected"
></item>
<item
android:drawable="@drawable/ic_tab_deal_unselected"
></item>
</selector>
nearyby_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_nearby_selected"
></item>
<item
android:drawable="@drawable/ic_tab_nearby_unselected"
></item>
</selector>
my_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_my_selected"
></item>
<item
android:drawable="@drawable/ic_tab_my_unselected"
></item>
</selector>
more_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"
android:drawable="@drawable/ic_tab_more_selected"
></item>
<item
android:drawable="@drawable/ic_tab_more_unselected"
></item>
</selector>
text_color_selector.xml
<?xmlversion="1.0"encoding="utf-8"?>
<selectorxmlns:android="http://schemas.android.com/apk/res/android">
<itemandroid:state_checked="true"android:color="@color/main_color"></item>
<itemandroid:color="@color/default_tab_menu_text_color"></item>
</selector>
colors.xml
<?xmlversion="1.0"encoding="utf-8"?>
<resources>
<color
name="main_color">#FF6625</color>
<colorname="default_tab_menu_text_color">#999999</color>
</resources>
MainActivity.java
package cn.sophia.android;
import android.app.Activity;
import android.os.Bundle;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;
// 当点击radioButton 时候,图标颜色和字体也要发生相应的变化,TextVIew 的字体颜色和 背景颜色也发生相应的变化
public class MainActivity extends Activity {
// 声明控件
private RadioGroup rgTabmenu;
private TextView tvContent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 初始化控件
rgTabmenu = (RadioGroup) findViewById(R.id.rg_tab_menu);
tvContent = (TextView) findViewById(R.id.tv_content);
// 为控件设置监听
rgTabmenu.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
switch (checkedId) {
case R.id.rb_tab_menu_deal:
tvContent.setText("团购");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_blue_light));
break;
case R.id.rb_tab_menu_nearby:
tvContent.setText("附近");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_green_light));
break;
case R.id.rb_tab_menu_my:
tvContent.setText("我的");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_orange_light));
break;
case R.id.rb_tab_menu_more:
tvContent.setText("更多");
tvContent.setBackgroundColor(getResources().getColor(android.R.color.holo_red_light));
break;
}
}
});
}
}
相关文章推荐
- Android 内存优化项目
- Android Native Binder
- iOS GCD, 同步,异步,串行队列,并行队列,dispatch_group
- Android Debuggerd 简要介绍和源码分析
- Android类动态加载技术
- Android MediaRecorder系统结构
- 移动端web开发技巧
- 媒体播放器探索之IMediaObject
- 【Swift学习】Swift编程之旅---字符与字符串(五)
- Android: 使用JitPack发布你的Github开源库
- unity3d 三分钟实现简单的赛车漂移
- Android Studio 2.0 download
- Android应用程序的组成部分
- android国际化
- Android开发中,有哪些让你觉得相见恨晚的方法、类或接口
- Android开发笔记之《JNI常用知识汇总》
- 关于android studio中装插件genymotion时遇到的一些问题
- JS中的call()和apply()方法
- Android 开发中的新技术
- iOS开发总结之仿qq侧滑功能