综合使用各种布局和控件创建出计算器界面
综合使用各种布局和控件创建出计算器界面
Grid layout子控件超出屏幕的一个解决方法
主要是gridlayout的使用(Tablelayout无法实现跨行操作)
有想法的小伙伴也可以用其他的
Gridlayout实现五行六列(这里有个坑)
直接上效果图(勉强这样的简易计算器界面图)
代 码分为两部分
第一部分MainActivity.java
主要作用是获取Grid layout的列宽然后再平均分配
package cn.edu.jssvc.lab2;import android.annotation.TargetApi;
import android.app.Activity;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.GridLayout;public class MainActivity extends Activity {private static final String TAG = "MainActivity";private GridLayout mGridLayout;private int columnCount; //列数private int screenWidth; //屏幕宽度@TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mGridLayout = (GridLayout) findViewById(R.id.gridLayout);columnCount = mGridLayout.getColumnCount();screenWidth = this.getWindowManager().getDefaultDisplay().getWidth();Log.e(TAG, "column:" + columnCount + "; screenwidth:" + screenWidth);for (int i = 0; i < mGridLayout.getChildCount(); i++) {Button button = (Button) mGridLayout.getChildAt(i);button.setWidth(screenWidth / columnCount);}}
}
第二部分代码
<?xml version="1.0" encoding="utf-8"?>
<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:orientation="vertical" ><TableRowandroid:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/textView"android:layout_width="match_parent"android:layout_height="40dp"android:layout_marginLeft="10dp"android:layout_marginRight="10dp"android:gravity="left|center_vertical"android:text=" 计算器"android:textSize="15sp"android:textColor="#000000"/></TableRow><EditTextandroid:layout_width="match_parent"android:layout_height="40dp"android:background="#B0C5EEF3"android:editable="false"android:gravity="left|center_vertical"android:padding="10dp"android:text="查看(V) 编辑(E) 帮助(H)"android:textColor="#000000"android:textSize="15sp" /><EditTextandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_gravity="center|top"android:layout_marginTop="20dp"android:layout_marginBottom="10dp"android:background="#D2E2DD"android:editable="false"android:gravity="right|center_vertical"android:text="0"android:textColor="#000000"android:textSize="40sp" /><GridLayoutandroid:id="@+id/gridLayout"android:layout_width="match_parent"android:layout_height="wrap_content"android:columnCount="5"android:rowCount="6"tools:ignore="NewApi"><Buttonandroid:id="@+id/mc"android:text="MC" /><Buttonandroid:id="@+id/mr"android:text="MR" /><Buttonandroid:id="@+id/ms"android:text="MS" /><Buttonandroid:id="@+id/m1"android:text="M+" /><Buttonandroid:id="@+id/m2"android:text="M-" /><Buttonandroid:id="@+id/delete"android:text="←" /><Buttonandroid:id="@+id/ce"android:text="CE" /><Buttonandroid:id="@+id/empty"android:text="C" /><Buttonandroid:id="@+id/empty1"android:text="±" /><Buttonandroid:id="@+id/empty12"android:text="√" /><Buttonandroid:id="@+id/seven"android:text="7" /><Buttonandroid:id="@+id/eight"android:text="8" /><Buttonandroid:id="@+id/nine"android:text="9" /><Buttonandroid:id="@+id/divide"android:text="/" /><Buttonandroid:id="@+id/multiple"android:text="%" /><Buttonandroid:id="@+id/four"android:text="4" /><Buttonandroid:id="@+id/five"android:text="5" /><Buttonandroid:id="@+id/six"android:text="6" /><Buttonandroid:id="@+id/minus"android:text="*" /><Buttonandroid:id="@+id/plus"android:text="1/x" /><Buttonandroid:id="@+id/one"android:text="1" /><Buttonandroid:id="@+id/two"android:text="2" /><Buttonandroid:id="@+id/three"android:text="3" /><Buttonandroid:id="@+id/minus1"android:text="-" /><Buttonandroid:id="@+id/equal"android:layout_gravity="fill_vertical"android:layout_rowSpan="2"android:text="=" /><Buttonandroid:id="@+id/zero"android:layout_columnSpan="2"android:layout_gravity="fill"android:text="0" /><Buttonandroid:id="@+id/dot"android:text="." /><Buttonandroid:id="@+id/plus1"android:text="+" />
</GridLayout>
</LinearLayout>
preview的时候可能第五列还是超出屏幕(如下图),在虚拟机上运行就不是这样的了!
综合使用各种布局和控件创建出计算器界面相关推荐
- 按钮控件数组实现计算器界面
数组的应用范围非常广泛,灵活运用可以提高程序的开发效率,减少重复代码.例如,本实例通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现了模拟的计算器界面.实例运行效果如图 本实例的关键点在于 ...
- java按钮数组_Java按钮控件数组实现计算器界面
编写程序,通过按钮数组来管理界面中的所有按钮控件,从而使用最少的代码实现模拟的计算器界面. 思路如下: 创建一个类,通过extends使其继承窗体类JFrame: 创建一个JFrame对象,使用JFr ...
- java调用数组计算器_java按钮控件数组实现计算器界面示例分享
思路如下: 创建一个类,通过extends使其继承窗体类JFrame: 创建一个JFrame对象,使用JFrame类的setVisible()方法设置窗体可见: 在构造函数中,使用super()方法继 ...
- 布局与控件(一)——布局与控件的常用概念
第1节 布局与控件的常用概念 界面设计中的控件,就是我们常常看到的按钮 滑动条 文字显示区等等,它们就像房间里的家具,是界面设计的最小单位. 布局是一个可以容纳别的布局(或者控件)的容器.它就像是一个 ...
- qt中创建控件布局以及删除原有布局和控件
引言 当根据数据来创建控件并布局时,如果数据更新,那么之前创建的控件便需要删除后重新创建布局.该文主要说明将原来的布局和控件删除,重新创建并布局. 示例 先看一下ui文件: 下面是实现代码: void ...
- Android 开发 -- 开发第一个安卓程序、Android UI开发(布局的创建:相对布局和线性布局、控件单位:px pt dp sp、常用控件 、常见对话框、ListView)
文章目录 1. 开发第一个Hello World程序 1.1 开发程序 1.2 认识程序中的文件 1.3 Android程序结构 1.4 安卓程序打包 2. Android UI开发 2.1 布局的创 ...
- 07.移动先行之谁主沉浮----控件之轮流轰炸——布局类控件
如果移动方向有任何问题请参考===> 异常处理汇总-移动系列(点) 移动先行之谁主沉浮? 带着你的Net飞奔吧! 链接======>(点) 一.布局类控件 Grid.StackPanel. ...
- java 控件内布局_Java开发桌面程序学习(二)————fxml布局与控件学习
JavaFx项目 新建完项目,我们的项目有三个文件 Main.java 程序入口类,载入界面并显示 Controller.java 事件处理,与fxml绑定 Sample.fxml 界面 sample ...
- 使用约束控件创建界面
本文讲的是使用约束控件创建界面, 如果你是刚刚接触约束控件--支持库中与 Android Studio 2.2 可视化 UI 编辑器紧密结合的新布局--我建议首先观看上面的介绍视频或者浏览我们的代码库 ...
最新文章
- Application ProvidedAar 完结篇
- 博客园——记录我的开始
- .NET Core开发日志——Middleware
- java高级教程_高级Java教程
- [整理]详记被忽略的Get与Post
- 软件项目开发成本经常用到的估算方法
- hysys动态模拟教程_(转载)HYSYS-过程模拟软件-稳态模拟-第一部分(一)
- 搜狗微信文章url解码
- 计算机电脑配置组装心得,自己如何组装电脑主机?diy电脑组装教程图解详细步骤+装机心得(4)...
- PPT课件实现连连看游戏——简单好用
- 计算机科学内容基础,计算机科学的基础pdf
- Lubuntu下启用Compiz
- vue刘海屏兼容组件
- 《零基础学HTML5+CSS3(全彩版)》读书笔记
- Java常用类,这一次帮你总结好!
- 计算机组成原理——奇偶校验,海明校验,循环冗余校验
- Bullet physics 引擎的官方文档翻译
- Linux--管理LVM逻辑卷 --原理+命令双结合(LVM的概述与建立,LVM的管理命令,LVM的应用步骤,磁盘配额的详解)
- 关于热是什么与人体怎么感受到热的笔记
- 【毕业设计】16-基于单片机的酒精浓度监测系统设计(原理图+仿真+实物图+论文+答辩PPT)
热门文章
- 富人是怎么赚钱的?富人赚钱的底层逻辑是什么?
- ACCE创建Object Store
- Linux全攻略--Mail服务器配置与管理
- ERRORS: auth.User.groups: (fields.E304) Reverse accessor for ‘User.groups‘ clashes with reverse acce
- 计算机如何连接共享网络设置,联想电脑怎么设置共享网络
- 氨基酸衍生手性催化剂CAS号:1011465-29-4
- python爬虫淘宝和天猫的区别_荐真实难过,当python爬虫对上淘宝和天猫,我又失败了!...
- 战神世界II 一个用IE玩的战略游戏 上班打发时间 不用安装任何客户端!
- 2021 Apache Pulsar 中文社区先锋奖与年度优秀案例奖出炉!
- 数字藏品电商平台开发:如何开发数字藏品?