利用线性布局和相对布局实现一个简单的页面
设计思路:
1)将准备好的八个图标复制到res/drawable文件夹下
2)创建一个垂直的线性布局,并在线性布局中创建4个相对布局
3)在相对布局中添加相应的TextView
4)在values文件下的style.xml文件中存放抽取出来的样式
5)创建values-zh-rCN、values-en-rUS文件夹,并在文件夹中创建strings.xml文件
一、布局文件
程序界面对应布局文件activity_mian.xml如下所示:
<LinearLayoutxmlns: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="@android:color/darker_gray"
android:orientation="vertical"
tools:context=".MainActivity">
<RelativeLayout style="@style/h_wrap_content"
android:layout_marginTop="10dp">
<TextView
style="@style/tv_style"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:drawableTop="@drawable/clound"
android:text="@string/_cloud"/>
<TextView
style="@style/tv_style"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:drawableTop="@drawable/bluetooth"
android:text="@string/_bluetooth"/>
</RelativeLayout>
<RelativeLayoutstyle="@style/h_wrap_content"
android:layout_marginTop="10dp">
<TextView
style="@style/tv_style"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:drawableTop="@drawable/gesture"
android:text="@string/_gesture" />
<TextView
style="@style/tv_style"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:drawableTop="@drawable/gps"
android:text="@string/_gps" />
</RelativeLayout>
<RelativeLayoutstyle="@style/h_wrap_content"
android:layout_marginTop="10dp">
<TextView
style="@style/tv_style"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:drawableTop="@drawable/info"
android:text="@string/_system_info" />
<TextView
style="@style/tv_style"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:drawableTop="@drawable/internet"
android:text="@string/_internet" />
</RelativeLayout>
<RelativeLayoutstyle="@style/h_wrap_content"
android:layout_marginTop="10dp">
<TextView
style="@style/tv_style"
android:layout_alignParentLeft="true"
android:layout_marginLeft="10dp"
android:drawableTop="@drawable/language"
android:text="@string/_language" />
<TextView
style="@style/tv_style"
android:layout_alignParentRight="true"
android:layout_marginRight="10dp"
android:drawableTop="@drawable/notifycation"
android:text="@string/_set_notifycation" />
</RelativeLayout>
</LinearLayout>
二、样式抽取
由于编写布局文件时,相同控件之间的外边距和宽高都是固定的。因此会产生大量重复的布局代码,为了代码简洁和重复使用可以将相同代码抽取为样式单独放在一个style.xml文件中。
style.xml文件如下所示:
<resources>
<style name="AppBaseTheme"parent="android:Theme.Light">
</style>
<style name="AppTheme"parent="AppBaseTheme">
</style>
<!-- 宽 match——parent 高 wrap_content-->
<stylename="h_wrap_content">
<item name="android:layout_width">match_parent</item>
<itemname="android:layout_height">wrap_content</item>
</style>
<!-- 宽高都 match——parent -->
<style name="tv_style">
<itemname="android:layout_width">145dp</item>
<item name="android:layout_height">90dp</item>
<itemname="android:gravity">center</item>
<itemname="android:paddingTop">8dp</item>
<itemname="android:paddingBottom">8dp</item>
<itemname="android:drawablePadding">5dp</item>
<item name="android:background">@android:color/white</item>
</style>
</resources>
三、创建values-zh-rCN、values-en-rUS文件夹
1.values-zh-rCN文件夹下的strings.xml文件如下所示:
<?xmlversion="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">手机信息页面</string>
<stringname="menu_settings">设置</string>
<string name="hello_world">你好,世界!</string>
<string name="_cloud">云通信</string>
<string name="_bluetooth">蓝牙</string>
<string name="_gesture">自定义手势</string>
<string name="_gps">定位</string>
<stringname="_system_info">系统信息</string>
<string name="_internet">网络</string>
<string name="_language">语言设置</string>
<stringname="_set_notifycation">通知栏设置</string>
</resources>
2.values-en-rUS文件夹下的strings.xml文件如下所示:
<?xmlversion="1.0" encoding="utf-8"?>
<resources>
<stringname="app_name">phoneInfo</string>
<stringname="menu_settings">Settings</string>
<stringname="hello_world">Hello world!</string>
<stringname="_cloud">Cloud</string>
<stringname="_bluetooth">Bluetooth</string>
<stringname="_gesture">Gesture</string>
<stringname="_gps">Gps</string>
<stringname="_system_info">SystemInfo</string>
<stringname="_internet">Internet</string>
<stringname="_language">Language</string>
<string name="_set_notifycation">Notifycation</string>
</resources>
四、测试结果
通过上面的简单几步我们就完成了对页面的布局以及样式的抽取。下面就是我们的运行结果
利用线性布局和相对布局实现一个简单的页面相关推荐
- 1-3.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之三
在1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一 基础上进行如下操作: 所有路由不能全部都在myDjango下的urls.py路由文件中, ...
- 利用霍尔效应传感器和Arduino研究了一个简单的钟摆
A simple pendulum studied using Hall effect sensor and Arduino 利用霍尔效应传感器和Arduino研究了一个简单的钟摆:原文(Hall e ...
- 入门攻略丨教你用低代码实现一个简单的页面跳转功能
一.介绍 HUAWEI DevEco Studio(后文简称:IDE)自2020年9月首次发布以来,经10次迭代升级,不断为HarmonyOS应用开发增强能力.3月31日,IDE再度升级到DevEco ...
- 利用USB接口转串口芯片,做一个简单的闪光灯
对于简单的单片机一个连接介绍,本文用STC15F104W单片机为例. 一.需要的设备:一个USB接口,一个最简单的STC15F104W芯片. 二.如何连接单片机和USB接口. 三.介绍一个简单的闪光灯 ...
- 一个简单的页面加载管理类(包含加载中,加载失败,数据为空,加载成功)
在最近公布的比赛框架中,发现了页面加载管理类,觉得挺有用的,所以做个简单的笔记. 什么是页面加载管理类呢?(大佬可直接跳过翻看实现过程) 如果能有这个问题,那么很好,哈哈哈,你和我一样,刚开始都挺疑惑 ...
- linux 页面内容输出,Node.js 一个简单的页面输出
最近决定重拾node.js,用它来做一个合并JS文件的东西.由于忘得差不多了,先看能不能输出一个页面来再说.以下是我的一些笔记,省得以后又忘净光-- 安装过程就不说了.如果成功是能使用node的命令. ...
- 只用html5与CSS做一个简单的页面,HTML+CSS基础训练之做一个简单页面的布局
下面进入正题:布局是网页设计的基础中的基础,一个好的布局可以让人一目了然,一个失败的布局会让协同人员抓狂.所以前端开发,从布局开始. 首先分析一下图片的布局 ,分析各个色块之间的嵌套关系 如图所示:红 ...
- 1-2.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之二
七.在项目下新建 templates 路径 在工程上,右键,添加templates目录 注意*: 此目录下即用来存放我们的html文件: 此目录一般是与app的主目录是平级的.当然也可以建立在app的 ...
- 1-1.Win10系统利用Pycharm社区版安装Django搭建一个简单Python Web项目的步骤之一
首先,安装python3.8和pycharm参考其他教程. 一.安装django 使用下面命令默认安装最新版的django pip install django 使用下面命令可以安装指定版本 pip ...
最新文章
- @Autowired注解通过源码讲原理
- 机器学习基础专题:随机变量
- 已成功与服务器建立连接,但是在登录过程中发生错误。 (provider: SSL Provider, error: 0 - 接收到的消息异常,或格式不正确。)
- git修改远程仓库关联
- Android_Servlet验证的简单登录程序
- 次要GC,主要GC与完整GC
- ELK 构建 MySQL 慢日志收集平台详解
- Linux7/Redhat7/Centos7 安装Oracle 12C_配置VNC远程安装数据库_03
- 邮箱伪造漏洞、钓鱼邮件漏洞(未添加SPF导致)
- Java SSM 与 SpringBoot
- 回文问题
- 京东支付-付款码支付测试不通原因在这
- inSSIDer无线信号扫描工具
- 用MySQL绘制新年祝福图形_qq空间留言代码之新年祝福篇
- Jlink v9仿真器PCB原理图自动升级固件
- 全国数字金融与量化金融案例大赛经验分享
- linux系统下深度学习环境搭建和使用
- 安防集成商的出路在哪里?
- 申请ssl 验证域名 失败了 中间证书
- 乔布斯2005年斯坦福大学毕业典礼演讲原文 – Stay hungry, stay foolish