点击上下左右按钮让背景上下左右移动
工作了这么长时间还从来没写过博客,最近闲来无事,忽然想写点东西与大家交流学习,如果哪里有不正确的地方欢迎大家指正。好了不说废话先上效果图:
当在一图输入数字后会在二图显示对应数字的控件,当点击上下左右时,红色会上下左右移动,图二是在点击右-上-右-右-右时的效果当在第一行点上时会跑到最后一行对应的位置,当在最后一行点下时会跑到第一行对应的位置,当在按钮0点左时会跑到最后一个,当在最后一个点右时会跑到按钮0。如何实现呢?第一个界面就不说了相信大家对大家一点难度也没有,从第二张图片说起。第一步:获取从图一输入的数字;
String str=getIntent().getStringExtra("num"); num=Integer.valueOf(str);
第二步:动态创建控件,创建的控件属为输入的数字,在布局里静态创建四个按钮并设置监听;
布局文件:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <RelativeLayout android:id="@+id/rl_bton" android:layout_width="match_parent" android:layout_height="wrap_content"> </RelativeLayout> <RelativeLayout android:id="@+id/rl_up" style="@style/mw_layout" android:layout_below="@+id/rl_bton" android:layout_marginTop="30dp" android:gravity="center"> <TextView android:id="@+id/tv_up" style="@style/ww_layout" android:text="上"/> </RelativeLayout> <RelativeLayout android:id="@+id/rl_rightandleft" style="@style/mw_layout" android:layout_below="@+id/rl_up" android:gravity="center"> <TextView android:id="@+id/tv_left" style="@style/ww_layout" android:text="左"/> <TextView android:id="@+id/tv_right" style="@style/ww_layout" android:layout_marginLeft="40dp" android:layout_toRightOf="@+id/tv_left" android:text="右"/> </RelativeLayout> <RelativeLayout android:id="@+id/rl_down" style="@style/mw_layout" android:layout_below="@+id/rl_rightandleft" android:gravity="center"> <TextView android:id="@+id/tv_down" style="@style/ww_layout" android:gravity="center" android:text="下"/> </RelativeLayout> </RelativeLayout>
Activity:
private void createControl() {//获取屏幕尺寸 DisplayMetrics dm = new DisplayMetrics(); getWindowManager().getDefaultDisplay().getMetrics(dm); int width = dm.widthPixels; //动态创建button RelativeLayout layout = (RelativeLayout) findViewById(R.id.rl_bton); bt = new Button[num]; int j = -1; for (int i = 0; i < bt.length; i++) {bt[i] = new Button(this); bt[i].setText("按钮" + i); //所有的button默认背景为蓝色 bt[i].setBackgroundColor(Color.parseColor("#6699ff")); //设置按钮的宽度和高度 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((width - 50) / 4, 40); if (i % 4 == 0) {j++; }//控件的左间距和上间距 params.leftMargin = 10 + ((width - 50) / 4 + 10) * (i % 4); params.topMargin = 20 + 55 * j; layout.addView(bt[i], params); }//给button0默认设置为红色 bt[0].setBackgroundColor(Color.parseColor("#f34649")); }
最后一步就是实现上下左右移动的逻辑了。向上移动减四,向下移动位置加四,向左移动位置减一,向右移动位置加一
@Override public void onClick(View v) {switch (v.getId()) {case R.id.tv_up://把背景设置为默认的背景色 bt[i].setBackgroundColor(Color.parseColor("#6699ff")); //向上移动位置减四 if (i - 4 < 0) {if ((Math.floor(num / 4) * 4 + i) < bt.length) {i = (int) Math.floor(num / 4) * 4 + i; Log.d("111111111", String.valueOf(i)); bt[i].setBackgroundColor(Color.parseColor("#f34649")); } else {i = bt.length + i - 4 - bt.length % 4; bt[i].setBackgroundColor(Color.parseColor("#f34649")); }} else {i -= 4; bt[i].setBackgroundColor(Color.parseColor("#f34649")); }break; case R.id.tv_left:bt[i].setBackgroundColor(Color.parseColor("#6699ff")); //向左移动位置减一 if (i - 1 < 0) {i = bt.length + i - 1; bt[i].setBackgroundColor(Color.parseColor("#f34649")); } else {i -= 1; bt[i].setBackgroundColor(Color.parseColor("#f34649")); }break; case R.id.tv_right:bt[i].setBackgroundColor(Color.parseColor("#6699ff")); //向右移动位置加一 if (i + 1 >= bt.length) {i = i + 1 - bt.length; bt[i].setBackgroundColor(Color.parseColor("#f34649")); } else {i += 1; bt[i].setBackgroundColor(Color.parseColor("#f34649")); }break; case R.id.tv_down:bt[i].setBackgroundColor(Color.parseColor("#6699ff")); //向下移动位置加四 if (i + 4 >= bt.length) {i = i - (int) Math.floor(i / 4) * 4; bt[i].setBackgroundColor(Color.parseColor("#f34649")); } else {i += 4; bt[i].setBackgroundColor(Color.parseColor("#f34649")); }break; } }
以上就是本贴的内容,希望能帮助到需要的朋友,如有错误之处欢迎指正!
点击上下左右按钮让背景上下左右移动相关推荐
- 按钮背景过渡css3,使用CSS3点击按钮实现背景渐变动画的效果
这篇文章给大家介绍的是,利用CSS3实现当点击按钮的时候,按钮的背景是渐变动画的效果,实现后的效果非常好,开发的时候利用这种效果的按钮会给用户一种非常酷炫的感受,感兴趣的朋友们下面来一起看看吧. 效果 ...
- andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo
andoid点击按钮(ImageButton)时改变按钮的背景图片 SelectorDemo 博客分类: android android selector 改变按钮背景图片 主要是用到selector ...
- html编辑点击取消复原,vue点击编辑按钮,内容变成input可以修改,也可以删除
一.效果 图1 图2,点击报错之后,又变成图1的效果 二.使用到了element UI中的以下组件: 三.使用的关键点是vue中的v-if指令 四.关键代码如下 HTML部分 添加街道 编辑 保存 @ ...
- EditText控件的基本使用(点击Button按钮,Toast提示EditText中的内容)
EditText是程序用于和用户进行交互的另一个重要控件,它允许用户在空间里输入和编辑内容,并可以在程序中对这些内容进行处理.EditText的应用场景非常普遍,在进行发短信.发微博.聊QQ等操作时, ...
- 安卓按钮设置背景颜色不管用_MIUI10新功能:时钟背景黑白自选、公交卡自定义时段唤起...
经历清明假与米粉节后,MIUI10恢复开挂模式,开发版每周给大家推送新功能.本期主要跟大家分享两个要点,其一是时钟背景颜色支持用户选择黑色或者白色,其二是NFC刷卡支持设置优先唤醒时间,降低手工切换操 ...
- android中在java代码中设置Button按钮的背景颜色
android中在java代码中设置Button按钮的背景颜色 1.设置背景图片,图片来源于drawable: flightInfoPanel.setBackgroundDrawable(getRes ...
- 微信小程序按钮添加背景
心急的小伙伴可直接看最后的总结. 这个功能真的是不吐不快!!!,因为是从Android 开发转小程序开发,在Android中给按钮添加背景图片是一件非常简单的事情:如下所示: <Buttonan ...
- java表格点击添加按钮一行_JavaScript_JQuery实现动态表格点击按钮表格增加一行,功能实现:点击添加按钮,表 - phpStudy...
JQuery实现动态表格点击按钮表格增加一行 功能实现:点击添加按钮,表格增加一行并给其name属性赋予的值,方便获取 点击删除,自动删除这一行 JQuery中定义一个count变量 var coun ...
- Android中遇到button按钮设置背景图片无法显示的解决方案
给button设置了background的属性却显示不出来 1.在图片导入时选错位置,应该选择第一个位置,如果选了第二个图片后面会有(v24)[如下图]就有可能加载不出来. 新版引入drawable ...
- MFC实战篇——图片旋转、控件PictureControl 清除显示、伪彩、直方图显示、为按钮添加背景图标、设置程序图标
文章目录 一.图片旋转 二.MFC 控件PictureControl 清除显示 三.伪彩 四.直方图 五.为按钮添加背景图标 六.设置图标 七.改变组框外观 一.图片旋转 建立图片控件 改变图片控件I ...
最新文章
- AI识别彻底懵逼,这到底是“牛”还是“鲨”?
- linux 使用FIO测试磁盘iops
- CentOS下安装JDK7 转载
- 程序员面试题精选100题(02)-设计包含min函数的栈[数据结构]
- 下一步工作,尽量将代码整理归拢成可以随意组合拆装的代码块。
- 点击SAP Fiori Launchpad某个tile后遇到的错误消息如何解决
- 注意力机制--转载自我的学生隆兴写的博客
- 字节跳动AI Lab 算法岗专属内推码!
- aspx头部代码%@ Page Language=C# AutoEventWireup=true CodeFile=ceshi.aspx.cs Inherits=SM_ceshi %
- 软件测试学习之 ---------- MySQL的查询(重中之重)
- windows下使用conda命令在anaconda环境中安装caffe
- paip.为什么使用多线程的原因.
- e-HR推动知识型企业人力资源管理提升
- 【整站下载器】小飞兔整站下载V5.0
- SD卡无法格式化方法介绍
- 微信公众号推文(编辑+排版教程)
- 阿里云服务器相关操作
- 高等数学学习笔记——第三十二讲——泰勒公式
- 我在阿里做测试这5年总结的7条生存经验。
- python 管线原理图_Q-Q图原理详解及Python实现