UI TextView菜单模拟按键
来源:互联网 发布:cisco 端口安全 编辑:程序博客网 时间:2024/04/28 06:09
UI TextView菜单模拟按键
布局设置
在Layout_bottom中设置成一排模拟的按键
其中每一个按键实现由一个TextView来模拟,首先Layout_bottom设置的背景为浅蓝色,而TextView在没有选中时,背景图片为空白色,而选中时为深蓝色,从而突出不同的。展示出一个按钮的效果。
TextView实现OnClickListener事件处理,首先要做的处理是在TextView的属性中的clickable设置为true才可以实现OnClickListener事件处理。
最终的效果:
主布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/default_bg" android:gravity="bottom" android:orientation="vertical" > <LinearLayout android:id="@+id/layout_top" android:layout_width="match_parent" android:layout_height="50dp" android:layout_weight="2" android:background="@drawable/bottom" android:gravity="center" android:orientation="vertical" > <TextView android:id="@+id/text_top" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" android:textColor="@android:color/black" android:textSize="24sp" /> </LinearLayout> <LinearLayout android:id="@+id/layout_body" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="90" android:gravity="center" android:orientation="vertical" > </LinearLayout> <LinearLayout android:id="@+id/layout_bottom" android:layout_width="match_parent" android:layout_height="100dp" android:layout_weight="30" android:background="@drawable/bottom" android:baselineAligned="true" android:orientation="horizontal" ><!-- 只要TextView的clickable设置为true就可以实现图片的OnClick事件处理 --> <TextView android:id="@+id/text_one" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:clickable="true" android:drawableTop="@drawable/bg_tab_call_log_pressed" android:gravity="center" android:paddingTop="15dp" android:text="@string/one" android:textSize="20sp" tools:ignore="NestedWeights" /> <TextView android:id="@+id/text_two" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:clickable="true" android:drawableTop="@drawable/bg_tab_contact_pressed" android:focusable="true" android:gravity="center" android:onClick="onClick" android:paddingTop="15dp" android:text="@string/two" android:textSize="20sp" /> <TextView android:id="@+id/text_three" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:clickable="true" android:drawableTop="@drawable/bg_tab_dial_pressed" android:focusable="true" android:gravity="center" android:onClick="onClick" android:paddingTop="15dp" android:text="@string/three" android:textSize="20sp" /> <TextView android:id="@+id/text_four" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="center" android:layout_weight="1" android:clickable="true" android:drawableTop="@drawable/bg_tab_sms_pressed" android:focusable="true" android:gravity="center" android:onClick="onClick" android:paddingTop="15dp" android:text="@string/four" android:textSize="20sp" /> </LinearLayout></LinearLayout>
1,2,3,4Activity的布局相同:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_gravity="center" android:gravity="center" android:orientation="vertical" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/activity_one" android:textSize="24sp" /></LinearLayout>
主程序:
package com.example.uitest;import android.os.Bundle;import android.app.ActivityGroup;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.LinearLayout;import android.widget.TextView;@SuppressWarnings("deprecation")public class UIActivity extends ActivityGroup {//声明四个TextView的引用private TextView textOne,textTwo,textThree,textFour;//声明Layout的引用private LinearLayout layout_body;//定义标志位,标记当前所处的页面private int sateFlag = 0;@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ui); initView(); //展示初始的视图,主要展现在Layout_body的布局中 showView(sateFlag); //给TextView设置事件监听器,前提是设置TextView的android:clickable的属性为true textOne.setOnClickListener(new ViewListener()); textTwo.setOnClickListener(new ViewListener()); textThree.setOnClickListener(new ViewListener()); textFour.setOnClickListener(new ViewListener()); } class ViewListener implements OnClickListener{@Overridepublic void onClick(View v) {// TODO Auto-generated method stubswitch (v.getId()) {case R.id.text_one:sateFlag = 0;showView(sateFlag);break;case R.id.text_two:sateFlag = 1;showView(sateFlag);break;case R.id.text_three:sateFlag = 2;showView(sateFlag);break;case R.id.text_four:sateFlag = 3;showView(sateFlag);break;default:break;}} } private void initView() {layout_body = (LinearLayout)findViewById(R.id.layout_body);textOne = (TextView)findViewById(R.id.text_one);textTwo = (TextView)findViewById(R.id.text_two);textThree = (TextView)findViewById(R.id.text_three);textFour = (TextView)findViewById(R.id.text_four);} private void showView(int flag) {switch (flag) {case 0://call this method to remove all childs view form the viewGrouplayout_body.removeAllViews();//获得要展示的ActivityView view0 = getLocalActivityManager().startActivity("one", new Intent(UIActivity.this, OneView.class)).getDecorView();//设置Textview的背景,模拟按键的按下的效果textOne.setBackgroundResource(R.drawable.frame_button_background);textTwo.setBackgroundResource(R.drawable.frame_button_nopressbg);textThree.setBackgroundResource(R.drawable.frame_button_nopressbg);textFour.setBackgroundResource(R.drawable.frame_button_nopressbg);layout_body.addView(view0);break;case 1://call this method to remove all childs view form the viewGrouplayout_body.removeAllViews();//获得要展示的ActivityView view1 = getLocalActivityManager().startActivity("one", new Intent(UIActivity.this, TwoView.class)).getDecorView();//设置Textview的背景,模拟按键的按下的效果textOne.setBackgroundResource(R.drawable.frame_button_nopressbg);textTwo.setBackgroundResource(R.drawable.frame_button_background);textThree.setBackgroundResource(R.drawable.frame_button_nopressbg);textFour.setBackgroundResource(R.drawable.frame_button_nopressbg);layout_body.addView(view1);break;case 2://call this method to remove all childs view form the viewGrouplayout_body.removeAllViews();//获得要展示的ActivityView view2 = getLocalActivityManager().startActivity("one", new Intent(UIActivity.this, ThreeView.class)).getDecorView();//设置Textview的背景,模拟按键的按下的效果textOne.setBackgroundResource(R.drawable.frame_button_nopressbg);textTwo.setBackgroundResource(R.drawable.frame_button_nopressbg);textThree.setBackgroundResource(R.drawable.frame_button_background);textFour.setBackgroundResource(R.drawable.frame_button_nopressbg);layout_body.addView(view2);break;case 3://call this method to remove all childs view form the viewGrouplayout_body.removeAllViews();//获得要展示的ActivityView view3 = getLocalActivityManager().startActivity("one", new Intent(UIActivity.this, FourView.class)).getDecorView();//设置Textview的背景,模拟按键的按下的效果textOne.setBackgroundResource(R.drawable.frame_button_nopressbg);textTwo.setBackgroundResource(R.drawable.frame_button_nopressbg);textThree.setBackgroundResource(R.drawable.frame_button_nopressbg);textFour.setBackgroundResource(R.drawable.frame_button_background);layout_body.addView(view3);break;}} @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.activity_ui, menu); return true; } }
OneView,TwoView,ThreeView,FourView程序相似
package com.example.uitest;import android.app.Activity;import android.os.Bundle;public class OneView extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {// TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(R.layout.one);}}
工程下载地址:http://download.csdn.net/detail/zhaoshiqing7/4545847
- UI TextView菜单模拟按键
- 模拟按键
- 模拟按键
- 按键模拟
- 模拟按键
- 模拟按键
- UI-TextView
- android 软按键 模拟按键
- UI自动化测试(四)AutoIT工具使用和robot对象模拟键盘按键操作
- 关于鼠标按键菜单
- 悬浮菜单+虚拟按键
- UI 开关按键
- 模拟菜单
- 模拟键盘按键
- 模拟键盘按键
- 如何模拟按键
- VB模拟按键
- Symbian 模拟按键关机
- 计算机网络基础知识 三
- 理解typename的两个含义
- PrintWriter
- Centos下配置Apache的虚拟目录
- 50道PMP考试样题
- UI TextView菜单模拟按键
- 我所担心的噩梦
- web.xml中关于Servlet、Filter、Listener的配置
- c语言字符串处理-----压缩字符串
- 构造函数 匿名类 一个类分开写
- ubuntu 11.10 安装 gcc 4.4
- ext grid无法显示的解决方案
- Linux设置环境变量小结
- mysql_real_connect()数据库连接出错